約 5,108,755 件
https://w.atwiki.jp/hack_asupe/pages/60.html
未翻訳 和訳できたのがあれば、下のコメント欄に書いてくれるとありがたい。Videoがない記述で行ってる動画URLでも嬉しい。一部の英文のabove等には非対応です。 用語 物理的バグ(Physics glitches) When Layer 2 or Layer 3 is scrolling and has interaction, the relative Layer 2 position ($7E002to then fly off along the6) gets added to capespins to handle interaction with between them. Normally, this resets back to Mario when it goes back to handle sprites and Layer 1, but if the game is frozen (via $9D), this doesn t happen, and the relative position keeps gets added repeatedly. This causes the cape hitbox axis of Layer 2/3 s movement during the freeze, hitting any blocks or sprites along the way. More information。 ヨッシー関係のバグ(Yoshi-related glitches) Jumping at the right angle onto a message box or light switch while riding Yoshi will "suck" Mario on top of the box, even if there is a solid block on top of it. He also won t be able to be crushed while on top of it, though you won t be able to get out otherwise. Yoshi s tongue will have unusual interacting when crossing screen borders. When crossing offscreen, it will loop to the opposite side of the screen, allowing you to pick up items on the other side. When crossing onscreen, it will "compress" toward Yoshi. An interesting advantage of this is that jumping off Yoshi when it s compressed will let Mario grab the sprite as he s jumping off. Doing this at the bottom of the screen can potentially cause the sprite to register as having despawned before Mario grabs it, allowing you to duplicate the sprite. It s possible to duplicate sprites near a level entrance by sacrificing Yoshi. Because the spawn region when entering a level (-60 to +A0) is larger than the despawn region for sprites (usually -40 to +30), a sprite can be spawned in a slot and then immediately despawned, entering its index for the sprite load status table to $161A in the process. If Mario enters the level riding a Yoshi that then takes the sprite s slot, that Yoshi will inherit that loading index due to it not being reset during level load. If you then despawn that Yoshi, the game will think it s okay to respawn the original sprite... even if that original sprite is already on-screen, or has even already been permanently killed. If $019D (part of the stack) is a value from 00 to 0C and Yoshi has a null sprite in his mouth, then Yoshi will get wings or be able to stomp the ground based on $16F5 (score sprite high X position). You can manipulate this value at any time, allowing Yoshi to freely swap out powers. If you item swap a sprite that uses extra bits (e.g. the goal tape) when Yoshi is in a higher slot than it, the sprite s extra bits will be modified. The game normally stores the extra bits with the sprite s high Y spawn position (in the format %----EE-Y) before correcting it in the sprite s initilization code; if Yoshi s tongue s code runs before the sprite s does, it will instead use the high Y position from the tongue, affecting the extra bits in the process. NOTE this glitch will NOT work in hacks that use custom sprites, due to using a specialized table for extra bits. More info。 If a keyhole is in a higher slot than a key, grabbing the key while it s stuck to Yoshi s tongue will allow the tongue to activate keyholes (even through walls). An easy method of doing this is by storing the key s slot to an invisi-Yoshi s tongue. Taking Yoshi wings or obtaining a bonus game in a room that only uses secondary exits will take Mario to a glitched exit in the bonus game room rather than the room it s supposed to go to. Lunar Magic fixes this by default. If Yoshi has a null sprite in his mouth, passing his mouth by a berry will cause him to store the berry to the null sprite (giving him a berry when he swallows). During certain frames of the swallowing animation, you can also actually eat the berry instantaneously as opposed to storing it. If a berry is located at the very bottom of a subscreen, then picking up the berry with Yoshi s mouth while he s ducking with his tongue out will cause the berry to register as eaten without actually clearing the tile. This can then be repeated infinitely. Berries don t work correctly in vertical levels. Yoshi will be unable to eat them most of the time, and when he can, they won t disappear; instead, an empty green bush tile will appear a screen below the berry s actual position, and the berry itself can be eaten an unlimited number of times. Mario can still get knocked off of Yoshi by sprites while in the sliding state, unless the sprite s clipping position is more than 13 pixels below Yoshi s when they make contact. Yoshi can lick the brown revolving platform by sticking his tongue out to the right side of its base. It won t actually do anything besides make a noise, though. Yoshi can lick the side-exit-enabled sprite by licking the center of the screen, three tiles from the bottom. It won t actually do anything besides make a noise, though. If Baby Yoshi is eating a sprite offscreen, turning while carrying an item in a higher slot than him will cause the sprite s tilemap to mess up. アイテムとオブジェクトのバグ(Item and object glitches) You can perform the above glitch with other carryable sprites by getting said sprite in slot #1 and overloading it. This will have some odd effects on the sprites when they re reset, such giving a key wings or changing a P-switch into a gold switch (acts like a blue switch, though). Mario can throw a shell up even as a Koopa is entering it, allowing him to effectively move Koopas throughout the level. Note that red and blue shells will invert their speed when the Koopa actually spawns. Similarly, if Yoshi eats a shell as a Koopa is entering it, spitting it out before its stun timer hits zero will still have the Koopa jump out of it. It s possible to bounce off Bob-ombs, Goombs, and Mechakoopas a frame before their stun timers run out. This is most notable with Bob-ombs, since you can t normally bounce off them again after they re stunned for the first time. Turnblocks can be copied from Layer 1 to Layer 2 or vice-versa by interupting their bounce sprite (even during the rotating animation) with one from a block on the destination layer If a coin is placed 16 screens away from a block and one tile higher than it, then bouncing off the top or side of this block (e.g. with noteblocks or the side-bounce turnblock) will give Mario a coin and create an invisible solid block on top. This occurs regardless of which side of the blocks the coins are actually on. However, the exact position of the coin needed for the glitch may vary depending on what screen it is on. If the sprite in the lowest filled sprite slot with object interaction is inside one of tiles 021-024 or 121-124, then all tiles outside of the level will register as the corresponding tile on Map16 page 0. They won t actually become solid when hit, but they will block Mario from below and spawn any related sprites. Notably, capespinning will briefly interrupt this effect. If a Koopa starts to jump into a shell while in the water and exits the water midway through the jump, the animation won t line up and it ll end up walking slightly further than it should. Hitting a block above the screen will cause it to dispense whatever is inside and stop giving items like usual, but its graphics won t change. 様々なバグ(Miscellaneous glitches) The net-climbing Koopas will only actually hit Mario if his feet are touching them. This means Mario can just hang off the bottom of the net to avoid them. Touching an invisible mushroom on the frame Mario s speed inverts will cause it to fly in the opposite directly than it normally would. Spawning a Bullet Bill shooter on the far left edge of a level will not only cause it to not actually spawn, but also create a shell-less green Koopa at [0,0] in every available sprite slot. If Mario touches the bottom of a solid sprite while the sprite is either touching the top border of the visible screen from above or crossing it, he will be warped to its nearest side, with the same effects as the above. This glitch works even if the screen is scrolling. As an exception to the above glitch, if a turnblock bridge is crossing the top of the visible screen and Mario s body is onscreen, he will not interact with the bottom or sides of the bridge rather than being warped to its side. In addition, if he is moving downward while touching the bridge, he will be warped on top of it; this effect can be used with vertically extending turnblock bridges to warp Mario upward, even through solid blocks. When more than two flying turnblock platforms are activated at once, they don t always move in the directions Lunar Magic claims they ll go. The directions each platform will move in also varies depending on which platform you land on; sometimes they even all move in one direction, even if they re not meant to. The game even gets confused when reversing the directions of the platforms; they don t always change direction when they re supposed to. When touching a revolving brown platform without actually being on it, some timers will decrease twice as fast. These include $1490 (star power timer), $18AC (Yoshi swallow timer), $18AE (waiting to stick Yoshi s tongue out timer), and $151C (Yoshi s tongue extension distance). Mario can be slightly offset while riding on a moving rope mechanism if he grabs on and holds the direction opposite to the direction the rope is in (though offsetting vertically without a block to assist Mario is only possible while big). This can let Mario fit in gaps that normally would not be possible while riding the rope. If a line-guided sprite hits either tile 096-099 or a tile on Map16 page P with position X such that P (0x80 (X % 8)) != 0 while falling, the tile will end up acting like whatever the last lineguide tile the sprite touched was. Then, one of two things will happen. If the sprite hits the block where the "start" of that rope tile is, it will latch on and function as it normally would if it were actually a guide. Otherwise, the sprite will end up warping vertically, with the distance depending on the sprite and certain conditions (specifically, how addresses $08 and $0A were modified prior to $01D938). For most of the sprites, this occurs in the OAM write routine making it difficult to manipulate, but for the Grinder and Fuzzy it s instead based on the Mario proximity routine, where it ll warp to the top of the subscreen Mario is on so long as he s within a 10x12 space around the sprite (though this space also repeats every 16 tiles in any direction). When flopping out of water, the standard fish sprites have a small chance of clipping inside a block upon hitting its side. This will cause the fish to either climb up the wall or clip straight through it. All underwater enemies other than basic fish will still act as if they re in water even when they re not; the only difference is that they ll sink downward as they move around. Boo rings have two slots for their data, but the first slot of data will only be used by the first boo ring spawned; all others will use the second slot. Since two rings can be spawned at a time, this causes the data from any two rings spawned more than six tiles apart after the first one to overlap. This means, if they re rotating in the same direction, the resulting ring will move at double speed. If they re in opposite directions, it ll instead be completely motionless. Each item memory bit covers an entire vertical column (or horizontal row in vertical levels) within a subscreen. This means that, if item memory is enabled, setting the bit for a block (e.g. a coin, 1-up block, Yoshi coin, etc.) will also affect all of the other blocks in the subscreen s column/row once the level is reloaded. Mario will "stick" to any platform sprites while running up walls via a purple triangle, slowing him down to the speed of the platform until it passes by. One notable use of this is that it even applies to the animation at the end of a wall where Mario reorients himself, but his horizontal speed will remain unaffected, which can cause him to clip into the tiles in the next column over. It should be noted that this works with the solid platform sprites as well, but only if Mario enters at a position where he doesn t get warped out of it. Wrong warp Taking a screen exit 256 times will reload the level from the overworld. The issue with this, however, is that the space of RAM meant for overworld data gets overwritten by level data during level load. This cause the game to try to loading the tile in the level data where the level would be in the overworld data as the translevel number to spawn Mario into. Not only does this potentially allow you to warp to any level in the game (even unused ones), it also can cause some strange effects, such the level getting used as a "no Yoshi" entrance in places not meant for one. It should be noted, however, that the "no Yoshi" entrance prevents a level from being warped to, as it will load the correct level after being run.Video、Diagram。 If a sprite has a spawn index of 65 or more (i.e. it s the 65th sprite from the left side of the level), then its "killed" status won t be reset when moving between sublevels. Hence, if you kill the 65th sprite in one room, the 65th sprite in any other room of that level will never spawn. Stopping the title screen animation on the frame Mario touches a coin will let him keep that coin even after the game is actually started. If Mario enters a room too far to the right, the level will display past the screen borders for a bit before snapping back and glitching some of the Map16 graphics until they are reloaded. Freezing the game (via $9D) on the frame a Koopa shell turns into a normal Koopa will cause its graphics to glitch during Mario s shrinking animation. Two shell-less Koopas can enter the same Koopa shell if timed correctly, but only the last one to enter before the Koopa emerges will actually have an effect on what spawns. Yoshi s head, and carried sprites, will turn invisible when in their turning state while Mario is in a cloud. This includes the improper turning state Yoshi has as a result of the layer-switch glitch. The lightest blue shade of the Magikoopa s palette is animated backwards for whatever reason. The hitbox for the extended sprite flower spawned when Wiggler is first bounced on is severely and unusually disjointed from its actual graphic. The spots at the bottom of Wendy s bow "jump" when she animates, even though there s no logical reason for them to. Destroying certain extended sprites with a star will cause their graphics to move slightly or have glitched graphics based on their orientation for a frame. Loading a level that has a "no Yoshi" entrance (by way of the 256 exit glitch or otherwise) when the entrance has already been run will prevent the cutscene from displaying, but will still function as normal, preventing both Yoshi and warps. Loading a "no Yoshi" entrance from a pipe with the 256 exit glitch will cause Mario to not animate correctly. Additionally, bringing an item will cause it to stick to a bush during the walk, and bringing a Yoshi will cause the timing of Mario s movement to get offset due to him being unable to spinjump off, causing him to walk straight through the gate (though you don t keep Yoshi, unfortunately). ロックとクラッシュ(Locks and Crashes) コメント欄 Jumping at the right ~:ヨッシーに乗ってメッセージボックスかライトスイッチに飛びかかると、マリオがそのスプライトの上に押し出される。これはスプライトの上にソリッドブロックがあっても起こる。スプライトの上にいる間、マリオは圧死しないが、抜け出せない。 言ってる意味がわからない -- 2016-10-11 16 09 33 If a keyhole is in a higher slot ~:鍵穴が鍵より高位のスロットにある時、Yの舌に掴まれた鍵は(?????)鍵穴に反応するようになる。これを行う簡単な方法は、透明Yにの舌に鍵のスロットをストアすることである。 -- 2016-10-11 16 54 34 If a berry is located at ~:木の実がサブスクリーンの十分下に位置する時、下を出したYの口で木の実をピックアップすると、タイルが更新されることなく食べたとして認識される。これは何度でも繰り返せる。 再現できない -- 2016-10-11 17 48 43 Touching an invisible mushroom ~:マリオの速度が反転するFに透明キノコに触れると、通常の反対方向に飛んでいく。 特定Fじゃない? -- 2016-10-14 19 45 48 Spawning a Bullet Bill shooter on ~:キラー砲台スプライトが画面左端より奥にあると、キラーの代わりに空きスロット分だけ裸緑ノコノコを[0,0]に毎回出現させる。 再現できない -- 2016-10-15 17 54 28 All underwater enemies other ~:プクプクを除いた水中の敵は全て水中でなくても同じように行動する。唯一の違いはそれらのスプライトは地上だと徐々に下降していくこと。 トーピードとかウニラとかは? -- 2016-10-15 20 54 04 Stopping the title screen ~:マリオがコインに触れるFで止めると、ゲームが開始された後でも コインを取得し続ける。 再現できない -- 2016-10-17 17 54 17 The lightest blue shade ~:カメックのパレットの最も明るい青色の影はいくつかの理由で裏でアニメーションする。 は? -- 2016-10-18 20 26 48 コメント すべてのコメントを見る
https://w.atwiki.jp/mydefrag_jp/pages/21.html
原文 http //www.mydefrag.com/Scripts-FileActions.html 更新日 2010/12/12 (ここで取り扱っている内容の原文をコピーした日付です) AddGap Set the position of the beginning of the next zone. This command is commonly used to create a gap at the end of the zone, making the zone bigger than necessary for the files in the zone, but the command can also be used to position a zone anywhere on disk. The command will be skipped (not executed) if the zone is empty (no files are selected by the FileBoolean). The NUMBER specifies the beginning of the next zone, an absolute position on the disk. Usually it will be the ZoneEnd plus a number of bytes, but you can specify a different formula. The command will do nothing if the NUMBER is negative. It is an absolute position on disk, and a negative number would be before the beginning of the disk. The program will automatically vacate the gap between the current end of the zone and the NUMBER. It will not vacate if the DoNotVacate option is specified, or if the NUMBER is lower than current end of the zone (negative gap). If all the next zones are sorted zones (using one of the SortBy fileactions) then DoNotVacate can be used, it will save some unnecessary data movements. The * FastFill and * MoveDownFill fileactions will only move files down, never up, so files that are in a DoNotVacate gap will be left in the gap. Syntax AddGap(NUMBER [, DoNotVacate]) Example # Add a gap of 1% of the free size of the volume. AddGap(ZoneEnd + VolumeFree * 0.01) # Same, but do not vacate. AddGap(ZoneEnd + VolumeFree * 0.01 , DoNotVacate) # Add a gap 1% of the volume size AddGap(ZoneEnd + VolumeSize * 0.01) # Add a gap of 1000 clusters. AddGap(ZoneEnd + 1000 * BytesPerCluster) # Add a gap 10% of the size of the MFT. AddGap(ZoneEnd + MftSize * 0.1) See also MakeGap FileActions Defragment Defragment all the selected items. Items that are not fragmented are ignored, they are not moved. Fragmented files are moved to somewhere above the beginning of the zone, possibly outside the zone. Defragment() will not optimize the zone, it does not move all files to the zone. To do that you need to use another fileaction, for example FastFill(). But not a SortBy fileaction, because those will already defragment all items and Defragment() would then do double work. There are 2 defragmentation algorithms to choose from. The * Fast algorithm will only defragment a file if it can find a gap big enough for the entire file. It will skip files that are too big for any gap. The default defragmentation algorithm will not give up so easily, if it encounters a big file and cannot find a big gap then it will try to make a big gap by shuffling other files around. This can take a lot of time. If the * IgnoreWrapAroundFragmentation setting is active (the default) then wrap-around fragmentation is not defragmented. Syntax Defragment(OPTIONS) Options Fast ChunkSize Example FileSelect .... FileActions Defragment() FileEnd See also IgnoreWrapAroundFragmentation FileSelect FileBoolean FileActions FastFill Fill gaps as best as possible with items from above the gap, in other words, consolidate free space. FastFill is a very fast and effective way to reduce the number of gaps on the disk, and at the same time move files as far to the beginning of the disk as possible. FastFill tries to perfectly fill gaps by looking for combinations of files. If no combination can be found and without the * WithShuffling option then the largest file that fits in the gap will be used, leaving a smaller gap. If all files above the gap are larger than the gap then the gap cannot be filled and will be skipped. If the WithShuffling option is specified then the file just above the gap will be moved away, making the gap bigger. The program will then try again to find a perfect fit. When looking for a combination of perfectly fitting files the program does not test all combinations of all files. It has to limit itself because the number of permutations for even a small set of files is astronomical. There is a tendency for small files to migrate to the beginning of the zone and large files to the end. This is because small files have a better chance to fit into a gap and are therefore more likely to move down. FastFill will destroy the ordering of the files. If the zone was optimized earlier (in another MyDefrag session, running another script) by one of the SortBy actions, then consider using * MoveDownFill instead. It is slower but it will preserve the ordering. Syntax FastFill() Options WithShuffling Example FileSelect .... FileActions # Fill gaps with items from above. FastFill() FileEnd See also WithShuffling MoveDownFill ForcedFill FileSelect FileBoolean FileActions ForcedFill Move all data as fast as possible to the beginning of the zone. The function will take the highest data on disk and split it into fragments that perfectly fill the gaps at the beginning of the zone, until the first gap is after the last data. Syntax ForcedFill() Example FileSelect .... FileActions # Fill gaps with items from above. ForcedFill() FileEnd See also MoveDownFill FastFill FileSelect FileBoolean FileActions MoveDownFill Fill all the gaps by moving (shifting) items to the beginning of the zone. This will perfectly fill all the gaps and will preserve the sorting order of the files. A tiny little gap somewhere at the beginning of the zone will cause all items above the gap to be moved (shifted). In this case MoveDownFill() is only a little faster than a full SortBy***(). However, if the gap happens to be further into the zone then MoveDownFill() will save time. Syntax MoveDownFill() Example FileSelect .... FileActions # Fill gaps with items from above. MoveDownFill() FileEnd See also FastFill ForcedFill FileSelect FileBoolean FileActions MoveToEndOfDisk Move the selected files to the end of the disk. More specifically for every selected file try to find a gap above that file big enough to hold the file, and move the file to the end of that gap. If no gap is found then skip the file. Files are automatically defragmented when they are moved. This action is relatively slow, best to be used for big files only. It s because the Microsoft defragmentation API is not very efficient in finding the last gap suitable for a file. The end of the disk is the slowest part of the disk. Many people want to move the spacehogs zone (with less important files that take up a lot of space) to the end of the disk, leaving a huge empty gap between the regular files and the spacehogs. In my opinion this is a waste of perfectly good harddisk space and makes the spacehogs slower than they need to be. This is why the standard MyDefrag scripts do not move the spacehogs to the end of the disk. Syntax MoveToEndOfDisk() Example FileSelect .... FileActions # Move files to the end of the disk. MoveToEndOfDisk() FileEnd See also FileSelect FileBoolean FileActions MoveUpToZone Move the selected files to above the beginning of the zone. Files that are already above the beginning of the zone are not moved. If there is no gap above the beginning of the zone that is big enough for a particular file, then the file is not moved. Files are automatically defragmented when they are moved. This action is designed to be used in cases where the beginning of the zone has been moved upwards by a * MakeGap volumeaction and the other fileactions would not move all the files. An example is the * FastFill fileaction, which only moves files down, never up, so files could stay before the beginning of the zone. MoveUpToZone() is not needed in zones that use a SortBy fileaction, because those actions will already move all files to the zone, even files that are before the beginning of the zone. Syntax MoveUpToZone() Example # Place the next zone at 50% of the volume. MakeGap(VolumeSize * 0.5, DoNotVacate) # Select files for the zone. FileSelect .... FileActions # Make sure all files are above the beginning of the zone. MoveUpToZone() # FastFill gaps in the zone with files from above the zone. FastFill() FileEnd See also FileSelect FileBoolean FileActions PlaceNtfsSystemFiles Place the selected items and sort alphabetically by their full pathname, ascending from A to Z or descending from Z to A. This function is intended to be used together with the * SelectNtfsSystemFiles fileboolean. It is basically the same as the * SortByName fileaction, except that files can be placed inside the NTFS reserved area. MyDefrag does not (cannot) change the size or location of the NTFS reserved area. The NUMBER parameter is only used to create a gap after the MFT. When Windows is booted it will automatically re-allocate the NTFS area. First it tries to place the area just after the MFT, using whatever free gap is there up to a maximum of 12.5% of the size of the volume. If there is no gap after the MFT then Windows places the area elsewhere on disk. Windows will also reset the area when the disk is mounted, see the MyDefrag * DismountVolume action. So, to move the NTFS reserved area you have to immediately boot the computer after using MyDefrag, and even then it is not guaranteed that the NTFS reserved area will have the size and place that you want. If the MFT is not selected then the NUMBER is ignored. It is useless to combine this fileaction with other fileactions, such as "Defragment()" or "FastFill()", because it moves all the files in the zone. Another fileaction would either needlessly move files, or would destroy the sorted order of the files. Syntax PlaceNtfsSystemFiles(OPTIONS , NUMBER) The OPTIONS are a space-separated list of these keywords Ascending Descending SkipBlock The NUMBER parameter is a hint, specifying a desired size for the NTFS reserved area. Example FileSelect # Select all the NTFS system files. SelectNtfsSystemFiles(yes) FileActions # Place the NTFS system files, NTFS reserved area is 10% of the MFT. PlaceNtfsSystemFiles(Ascending,MftSize * 0.1) FileEnd See also SelectNtfsSystemFiles DismountVolume ReclaimNtfsReservedAreas AppendLogfile BatteryPower Debug Description DiskmapFlip ExcludeFiles ExcludeVolumes ExitIfTimeout FileMoveChunkSize IgnoreWrapAroundFragmentation Language MaxRunTime Message OtherInstances Pause ProcessPriority RememberUnmovables RunProgram RunScript SetColor SetFileColor SetScreenPowerSaver SetScreenSaver SetStatisticsWindowText SetVariable Slowdown StatusBar Title WhenFinished WindowSize WriteLogfile ZoomLevel SortByCreationDate Place the selected items and sort by the time they were created, from oldest to newest ("ascending") or from newest to oldest ("descending"). The creation date can be newer than the last-changed date, for example when a file was downloaded, or unpacked from an archive (such as zip or arj). This action will also defragment. It is therefore not necessary to combine it with the * Defragment action. This action will create "wrap around" fragments. For more information see the * IgnoreWrapAroundFragmentation setting. Syntax SortByCreationDate(OPTIONS) The OPTIONS are a space-separated list of these keywords Ascending Descending SkipBlock Example FileSelect .... FileActions # Sort the items by CreationDate time, most recently accesses items first. SortByCreationDate(Descending) FileEnd See also FileSelect FileBoolean FileActions SortByImportSequence Place the selected items and sort by the sequence in which they were imported ("ascending") or in reversed order ("descending"). This function is designed to be used in combination with the * ImportListFromBootOptimize or the * ImportListFromFile file boolean. This action will also defragment. It is therefore not necessary to combine it with the * Defragment action. This action will create "wrap around" fragments. For more information see the * IgnoreWrapAroundFragmentation setting. Syntax SortByImportSequence(OPTIONS) The OPTIONS are a space-separated list of these keywords Ascending Descending SkipBlock Example # Optimize the system disk for faster booting. FileSelect ImportListFromBootOptimize() FileActions SortByImportSequence(Ascending) FileEnd See also ImportListFromBootOptimize ImportListFromFile FileSelect FileBoolean FileActions SortByLastAccess Place the selected items and sort by their LastAccess time from oldest to newest ("ascending") or from newest to oldest ("descending"). Sorting by LastAccess date/time may seem like a good idea at first, but is far from perfect. The theory is that the LastAccess times will be the same on all the files that are used by an application, so sorting by LastAccess will put all the files of the application together on disk. But the LastAccess time is also updated in many other cases, not only when you run an application. In my view sorting by LastAccess can be useful in certain situations, but is essentially random and should not be used for the bulk of the data on regular disks. Sorting in "Ascending" order will put the oldest (never accessed) files at the beginning of the zone. So, the files that you use the most are placed at the end of the zone, which is a slower part of the harddisk and (usually) further away from the MFT and the directories. Sorting in "Descending" order will put the last accessed files at the beginning of the zone. So, the files that are accessed first when you start a program are placed behind files that are accessed later. Your harddisk will be working backwards. Vista by default does not update the LastAccess time. For more information see * What is "NtfsDisableLastAccessUpdate"? On FAT volumes the resolution of the LastAccess time is 1 day. NTFS delays updates to the LastAccess time by up to one hour. Some improperly programmed utilities cause a change in the LastAccess time of all items on the disk when they scan the disk. Examples are virus scanners, backup programs, text indexers. This action will also defragment. It is therefore not necessary to combine it with the * Defragment action. This action will create "wrap around" fragments. For more information see the * IgnoreWrapAroundFragmentation setting. Syntax SortByLastAccess(OPTIONS) The OPTIONS are a space-separated list of these keywords Ascending Descending SkipBlock Example FileSelect .... FileActions # Sort the items by LastAccess time, most recently accesses items first. SortByLastAccess(Descending) FileEnd See also FileSelect FileBoolean FileActions SortByLastChange Place the selected items and sort by the time they were last changed, from oldest to newest ("ascending") or from newest to oldest ("descending"). The last-changed date can be older than the creation date, for example when a file was downloaded, or unpacked from an archive (such as zip or arj). This action will also defragment. It is therefore not necessary to combine it with the * Defragment action. This action will create "wrap around" fragments. For more information see the * IgnoreWrapAroundFragmentation setting. Syntax SortByLastChange(OPTIONS) The OPTIONS are a space-separated list of these keywords Ascending Descending SkipBlock Example FileSelect .... FileActions # Sort the items by LastChange time, most recently accesses items first. SortByLastChange(Descending) FileEnd See also FileSelect FileBoolean FileActions SortByName Place the selected items and sort alphabetically by their full pathname, ascending from A to Z or descending from Z to A. Items are not just sorted by their filename (for example "explorer.exe"), but by their full pathname including all the folder names (for excample "c \windows\explorer.exe"). The result is that all items that are in the same folder are placed in a block together on disk, and inside that block they re sorted by their filename. If a file has multiple names (hard links) then the file is sorted by the first name that happens to be mentioned in the FAT/MFT. This action will also defragment. It is therefore not necessary to combine it with the * Defragment action. This action will create "wrap around" fragments. For more information see the * IgnoreWrapAroundFragmentation setting. Syntax SortByName(OPTIONS) The OPTIONS are a space-separated list of these keywords Ascending Descending SkipBlock Example FileSelect .... FileActions # Sort the items by their full path. SortByName(Ascending) FileEnd See also FileSelect FileBoolean FileActions SortByNewestDate Place the selected items and sort by creation, last access, or last change date/time, whichever is newest, from oldest to newest ("ascending") or from newest to oldest ("descending"). Sorting by newest date/time may seem like a good idea at first, but is far from perfect. The theory is that the newest date/times will be the same on all the files that are used by an application, so sorting by the newest time will put all the files of the application together on disk. But the date/times are also updated in many other cases, not only when you run an application. In my view sorting by newest date/time can be useful in certain situations, but is essentially random and should not be used for the bulk of the data on regular disks. Sorting in "Ascending" order will put the oldest files at the beginning of the zone. So, the files that you use the most are placed at the end of the zone, which is a slower part of the harddisk and (usually) further away from the MFT and the directories. Sorting in "Descending" order will put the newest files at the beginning of the zone. So, the files that are accessed first when you start a program are placed behind files that are accessed later. Your harddisk will be working backwards. The creation date can be newer than the last-changed date, for example when a file was downloaded, or unpacked from an archive (such as zip or arj). This action will also defragment. It is therefore not necessary to combine it with the * Defragment action. This action will create "wrap around" fragments. For more information see the * IgnoreWrapAroundFragmentation setting. Syntax SortByNewestDate(OPTIONS) The OPTIONS are a space-separated list of these keywords Ascending Descending SkipBlock Example FileSelect .... FileActions # Sort the items by newest time. SortByNewestDate(Descending) FileEnd See also FileSelect FileBoolean FileActions SortBySize Place the selected items and sort by size from smallest to largest ("ascending") or from largest to smallest ("descending"). This action will also defragment. It is therefore not necessary to combine it with the * Defragment action. This action will create "wrap around" fragments. For more information see the * IgnoreWrapAroundFragmentation setting. Syntax SortBySize(OPTIONS) The OPTIONS are a space-separated list of these keywords Ascending Descending SkipBlock Example FileSelect .... FileActions # Sort the items from smallest to largest. SortBySize(Ascending) FileEnd See also FileSelect FileBoolean FileActions
https://w.atwiki.jp/fffkindle1212134/pages/17.html
Code Geass 2. The White Knight Awakens The date was August 10 in the year 2010 of the Imperial Calendar. The Holy Britannian Empire had just declared war upon Japan. Confronted by Britannia s newest weapon, the formidable Knightmare Frame, Japan fell to its enemy in less than a month. The conquered nation was stripped of its freedom, rights, culture and dignity. Finally, even its name was taken away. 11. The name of Japan and its people was replaced with a mere number. Lelouch I don t understand what it is you wanted me to do. Why did you give me this bizarre power? Villetta How could all these Royal Guards be dead? What happened here, boy? And why is a Britannian student in a place like this?! Are you deaf? Answer me or I ll- Answer me! Lelouch I order you to come out. At once! Villetta Who the hell do you think you are to order me? Lelouch I see. It only works with direct eye contact. My name is Allen Spacer, my father s a duke. Villetta Nobility? Lelouch My ID card s in my breast pocket. After you confirm who I am, I ll request your protection. Villetta Keep your hands up in the air, I ll take out your ID. Lelouch Now then, hand your Knightmare over to me. Villetta Understood. The code number is XG21G2D4. Lelouch Got it. Villetta What the-- Lloyd So are we having a bad day? Looks like you missed a chance to go to heaven, Private Kururugi. Suzaku I did? Where? Lloyd Hmm? Ah, we re still in the Shinjuku Ghetto. Cecile With Prince Clovis nearby this is probably the safest place anywhere. This is what saved your life, Mr. Suzaku. Lloyd You re lucky it was under your protective suit because that s what deflected the bullet. Cecile Is it a keepsake? Suzaku Yeah, very. Lloyd You Elevens believe that gods live inside of everything, even objects, don t you? I guess this one-- Suzaku Is Lelou- What s the latest on the situation? Lloyd It looks like the poison gas was released. Massive Eleven casualties have been reported. Cecile They haven t caught the perpetrators yet. Suzaku They haven t, huh? Not yet? Lloyd Private Kururugi, how much experience do you have in piloting a Knightmare frame? Suzaku But there s no way an Eleven would be made a knight. Lloyd Well, supposing you could? Congratulations, the only Knightmare of its kind awaits you! Once you take the controls of this big beauty everything will change, you and your world. Cecile Whether you want it to or not. Kallen Those damn Britannians! Ogi Kallen, can the Glasgow still move? Kallen Don t worry Ogi, it s all right. I ll decoy them! Get the people out of here. The only ones that ll be captured are those of us in the resistance. Ogi I know but we re trapped, they ve got us completely surrounded. Students That s because you don t have enough leg strength, right? You re wrong. You sink when you get fat. Because you snack, right? I ll be fine, I burn up twice as many calories. Shirley Ah, Lelou? What in the world have you been doing? Where are you now? If you keep cutting class, you ll get held back. Lelouch Are you near a TV? Shirley A TV? Lelouch Sorry, but this is important. Shirley Hang on. Hey, can I change the channel? Student Huh? To what? Lelouch The news, is there anything about Shinjuku? Shirley News? Uhh, let s see... There s nothing on. Traffic restrictions? Lelouch Why is it restricted? Shirley I don t know. They re not saying. Lelouch I get it. Once they finish everything off, they ll release news that favors the military. Shirley Ooh, you re gambling again, aren t you? I ve warned you before more than once how dangerous that is! Lelouch Yep, you caught me. By the way, tell my little sister that I m gonna be late home tonight, would you? Thanks. Shirley Oooh! Why does he always hang up on me like that?! Announcement The number you have called is beyond service range. Shirley Oh darn it, not this again. Lelouch They need to keep a lid on this information, so it ll be hard for them to call in reinforcements. They ll have to make do with the pieces they have on the board. But I m hemmed in here, and it ll be tough to break through by myself. Gaining refuge carries its own risk, too. I want payback for being dragged into your fight. Jeremiah It s our Glasgow friend. Kallen Just 30 minutes left! Lelouch The west entrance. Use the tracks to move to the west entrance. Kallen Who s this! How do you know this code?! Lelouch That doesn t matter. If you wanna win, you re just gonna have to trust me. Kallen To win? Okay, what am I supposed to do now? Jeremiah You pathetic Eleven. If you simply run away, this hunt hasn t much to offer in the way of sport. Lelouch Since you trusted me, you re gonna win. Jump onto the train! Kallen Gotcha! Jeremiah You think you can get through that way, hmm? If that s your plan, then... You! Go after the Glasgow. Military Yes, My Lord! Jeremiah What the...? Shot by friendly fire? What s your name and your unit?! We re after the one armed Glasgow. Oh my god! A terrorist?! Kallen Aaaaah! Jeremiah You son of a--! Kallen You saved me. But how did you get ahold of a Sutherland? What? Where did he go? Ogi Kallen! What the hell was that radio message earlier? Kallen What? He contacted you, too? Ogi Sure did. And Yoshida s group ought to be here soon. Lelouch Are you in charge? Ogi Ah, yeah. Lelouch I present to you the cargo in that train over there. They re tools for your victory. If you want to use them to win, then follow my orders. Resistance There s more in here! Resistance Here, too! Resistance Amazing! Maybe we should give this guy a chance. Kallen All this? But how? Lelouch Woman in the Glasgow! Kallen Y-yes! Lelouch Stay where you are. Your unit s gonna run decoy. You got that? Kallen Understood. Lelouch Energy filler status? Kallen About 15 minutes worth. Lelouch Then recharge it! In 10 minutes, I ll contact you with your next instructions. This is wearing me out. Regardless, I ll need determination to succeed. After all, I m betting my life in this game. Bartley The terrorists are mixed among the Eleven populous and they re mounting a minor resistance against us. But they pose little threat to our vastly superior army. Clovis We know that. Moving on. Bartley Understood, Your Highness. The gas capsules will be-- Clovis What the public thinks. Bartley Yes. We’ll keep searching for her. Clovis Either way I want her captured dead or alive. Tamaki Hey, are you certain about this whole thing? They’ve all had their IFFs removed. What if this is a trap? Ogi The other side has total advantage in this war. They don’t need to set any traps. All right people, let s move. Get to your assigned points. Lelouch P1, can you move? It operates basically the same as what you re used to. Ogi Can’t you tell us who you are, at least your name? Lelouch I can’t do that. What if these signals are being intercepted? Anyway, if Q1 is on schedule, enemy Sutherlands, probably two of them, will reach you in 23 seconds. Shoot them through the wall. Tamaki Aaarrrg, he’s out of his mind. Ogi Everyone, double check your weapons. Tamaki What?! Are you serious? Military Enemy spotted at point F 31. Clovis A feint, eh? How pedestrian. Bartley Tell Laslo’s squad to go straight in. Have Eugen and Valerie strike from the rear. Ogi 3, 2, 1 , fire! Military Sir Eugen and Sir Valerie, both lost. Clovis Hmm? An ambush? Lelouch An ID signal can be a double edged sword. Besides, if the terrorists follow the orders I issue, my task at hand is sure to be completed. P1, P4, P7, move a hundred meter to the right and fire your slash harkens toward 3 o’clock. Ogi You heard him. Do what the voice says. Tamaki Damn, what else does he want us to do? Lelouch P5, ready? Tamaki Yeah. Quit calling me that. Military Ah! They re using the same-- Military The enemy s moving towards G 28. Bartley Send Laslo s Squad, I mean [Glaubey] s Squad! Clovis This means terrorists have our military weaponry? Military Sir [Glaubey] has ejected! His unit s been lost! Bartley Change our codes, they re intercepting our transmission. Military We already have sir, four times! Bartley Do it again. Clovis This failure is unacceptable. Bartley ...Forgive me. Lloyd Good afternoon. Bartley What is it? We’re in the middle of an operation. Lloyd I’d say it s time to deploy the [ASEEC s] special weapon. Clovis We ve no time for this right now. Lelouch R2, fire anchor. B7, use UN ordnance. N group, you ll continue your advance. Military You bloody Eleven! Military We just lost Laslo s Squad. Clovis So do it. We’ll have to bring up Quincey’s squad. Bartley My Lord, that will break the encirclement. Lelouch Now then, the enemy has five options. Their move. Clovis Reinforce the breach with some of the units guarding me. All we know for certain is that enemy forces are here. Jeremiah Who ordered them to break formation? Lelouch Well that’s a more stupid move than I expected. You, Q1, do you have an area map? Kallen Yes, I have a map of the old town. But it has no current land marks. Lelouch It’ll do. Clovis All right, send in Burts and the others too. Lelouch Mission number 3 now. Clovis Concentrate our forces there. Surround them. Lelouch Is everything prepared? Clovis The enemy’s main force is that center dot. Finish every one of them off. Lelouch Hm. Clovis What?! Where s the enemy? Lelouch With this, I call check. Lelouch HAHAHAHAHA! My plan worked, didn’t it. I can do it. I can. I can defeat Britannia! Clovis Who? Who in the hell am I up against? What if he’s even better than Todo? Lloyd! Lloyd Yes, Your Highness. Clovis Can it win, will your toy beat them? Lloyd My Lord, please be so kind as to call it Lancelot. Z-01 Lancelot now activating. Lancelot activating. Releasing hatch. Z-01 Lancelot standby for activation. Pallet extension initiating. Cecile Did you read the manual? Suzaku Pretty much. Cecile Well done. You scored at the top of the class in the simulator. Suzaku Hey, look. About what you told me earlier. Cecile Huh? Ah, it could be. But the possibility is nearly zero. Suzaku But that means there s still a chance, right? Cecile Yes, I m afraid that s true. Even so, you re not to do anything reckless. The new system is not outfitted with an ejection mechanism. Suzaku OK. I understand, Miss Cecile. That s it? Cecile Yes, the advanced weapon developed by us in the Advanced Special Envoy Engineering Corps, Lancelot, the world s first seventh generation Knightmare Frame. Lloyd Well, if you re ready, Suzaku, shall we proceed with the initial startup? Cecile Initial startup. Now percieving from phase twenty. Equiping energy filler. Confirm pre-start. Energy filler now at full output. 30 seconds to reach critical voltage. Core Luminance, shifting phase. Cecile Initiating devicer setup. Confirming entry of devicer into Z-01. Individual ID registration confirmed. Confirm man-machine interface. Engage. Yggdrasil Resonance comfirmed. Rejection Responce, weak. Devicer s Stress Responce, weak. All readings, nominal... Lloyd So far, it s going per the data. ...status, all green. Status of back up tactical bank, authorized. Secondary confirmation, given. Suzaku Lancelot, activate ME-boost. Cecile Lancelot, launch! Lloyd HAHAHAHA! Running full throttle right out of the gate. Suzaku Cooler than the manual. With this...! Tamaki Huh? What is that? It doesn t look like a Sutherland. Lelouch Hahaha... Another push and the check point will fall. Resistance This is B group, reporting enemy presence. Lelouch Hm? Reinforcements? Real battle is different, isn’t it? Status? Resistance Every one ejected, but they took out four units in nothing flat. Lelouch Enemy numbers? Resistance Just one. I think it’s a new model. I’ve never seen anything like it- Ah! Lelouch What’s happening out there? Resistance Bastard! Lelouch What? It reflects bullets? Resistance Arrh, what do we do? Ishida! Ah! Lelouch Useless so called terrorists. With all the resources they have, they re being beaten by one unit. Resistance Damn it! Suzaku Yes, I can do this. With Lancelot I can stop all this at once. Lelouch N4, N5, hold there. When the rear units arrive, surround that thing. Resistance Gotcha. We can t stop it! Lelouch N units, what is it? What happened? Something I didn t foresee? Clovis For heaven’s sake. Now I’ll owe my older brother a debt I don’t need to incur. It s for the best, though. Ougi Ah! Lelouch P1! Report! The enermy, can it really be only one unit? Cecile These readings are even higher than predicted. Lloyd It s because our pilot is taking his job very seriously. Suzaku If I can stop all the Knightmares, then this battle is over. No matter what it takes, I ve gotta save Lelouch and that girl. Lelouch You mean this thing s what s ruining my plan? Suzaku Are you the guy that s in command? Lelouch Nothing more than a pilot. How dare he! No choice, I ve gotta get out of here. Kallen Hey, I’m returning the favor. I can t-- Lelouch I must remember that the most vital element in battle is the human one. That damn monster s unstoppable! Suzaku Bastard. He s tearing things up for no reason! Woman Eeeeeeeeek! Lelouch In the midst of battle he rescues someone? Hm, I concede you the tactical victory here. Nevertheless... Lloyd Huh? He saved someone? Lab worker Yes, so it would seem. Lloyd Hm... It s very strange of him. Woman Ah! Cecile Suzaku, are you tired? We ll call it quits for today. Suzaku No. I m fine. Please let me keep going. Lloyd Be careful with his operational time! Cecile Yes, sir. Lloyd My, that boy s an excellent piece of equipment. Soldier Stop there, your ID. This is Prince Clovis’s personal transport. Lelouch At last, the check point. And barely guarded, per my plan. Soldier Your plan? Lelouch That’s right. Now I d like you to let me pass. Soldier Yes, sir. Understood. Ougi Kallen! Man It s your fault. This is what happened when you oppose the Britannians. Tamaki What!? Why you gutless coward? Woman How many people were killed because of this!? Tamaki Shut up! Do you know how many of us were killed or captured? Do ya? Quit crying. Kallen Ougi, who was that voice we heard? Ougi Damned if I know. He doesn t answer when I call so maybe he b-- Tamaki There, you see! Instead of following somebody we don t even know, we should ve use the poison gas. Ougi But he-- Tamaki Damn Nagata to hell! Soldier So this is where you Eleven vermin scurried off to. Prepared to fire! Kallen Naoto! Soldier Commence-- Clovis Attention all forces. Cease fire at once. Suzaku Cease fire? Clovis I Clovis, third prince of Britannia and royal viceroy of Area Eleven, here by command you, all forces are ordered to cease fire at once. You also cease destruction of any buildings or property. All casualties, whether Britannian or Eleven, shall be treated equally and without prejudice. In the name of Clovis la Britannia, you are here by ordered, cease fire at once. I shall allow no further fighting. Clovis Are you satisfied? Lelouch Very. Well done. Clovis And what shall we do now? Sing a few lively ballads, or perhaps a nice game of chess? Lelouch That has a familiar ring. Clovis Hmm? Lelouch Don’t you recall? The two of us used to play chess together as boys. Of course, I would always win. Clovis What? Lelouch Remember? At the Aries Villa? Clovis You, who are you? Lelouch It’s been a long time, big brother. The eldest son of the late consort Marianne and seventeenth in line to the imperial throne, Lelouch vi Britannia, at your service. Clovis Lelouch?! B-But I thought-- Lelouch That I was dead? You were wrong. I have returned, Your Highness. And I’ve come back to change everything.
https://w.atwiki.jp/seasartaro/pages/50.html
javaのwhile文と同様です。repeat文はjavaのdo whileに似ています。 テーブルを作成します。 t = {"value1", "value2", "value3", "value4", "value5"} w1 = 5 while w1 0 do -- w1が0より大きい間は、以下を実行 print(t[w1]) w1 = w1 - 1 end 実行結果は以下です。 value5 value4 value3 value2 value1 同じテーブルを使って、repeat文を実行してみます。 repeat w1 = w1 + 1 print(t[w1]) until w1 == 5 untilの後に書かれた条件式を満たしていない間は do 以下の処理を続行します。 つまりw1 == 5になるまで処理を繰り返します。 実行結果は以下です。 value1 value2 value3 value4 value5
https://w.atwiki.jp/crsavrkouza/pages/27.html
10.繰り返し while文 for文 同じようなことを繰り返させるのに,同じようなことをひたすら書き続けるのは大変ですね. 例えば1から10までの数字を表示させることを考えます. 馬鹿正直に1行づつ書くと、下のプログラムのようになります. #include stdio.h int main(void) { printf("1\n\r"); printf("2\n\r"); printf("3\n\r"); printf("4\n\r"); printf("5\n\r"); printf("6\n\r"); printf("7\n\r"); printf("8\n\r"); printf("9\n\r"); printf("10\n\r"); return 0; } 今回は10までの数字でしたが、10000までの数字を1つずつ表示するとなったらどうすればよいでしょうか。 こうした単純な繰り返しこそコンピュータの得意技です.繰り返しの制御構文にwhile文,for文などがあります. while文について 繰り返し行う構文の一つです. 書式 while文で記述 (繰り返し開始時に行う処理) while(条件式) { 繰り返したい処理 ・ ・ ・ 1周するごとに実行する文 } while文は条件式が真のとき、{ }内の処理を繰り返します。 1から10000までの数字を表示させるプログラムをwhile文で記述します. #include stdio.h int main(void) { int x = 1; while(x 10001) { printf("%d\n\r", x); x++; } return 0; } 動きを1行ずつ追っていきます. まず,ループ用変数としてiが用意します. 次の行でwhile()に当たります.ループ条件は1 10001なので真です.{}内に進みます. printf()で1を表示します. i++でループ回数を1増やし,iは2になります. }にあたったらwhile()に戻ります. 2 10001なので{}内に進みます. 3,4,...9999回も同様です. 10000回目 printf()で10000を表示します. i++でiは10001になります. 100001 100001は偽です.{}を飛ばします. return 0にあたり,プログラムを終了します. これをいちいち1~10000までprintfを書くよりはるかに楽に記述できています. また,繰り返し回数が変数にできるところも大きな利点です. for文について while文同様繰り返しを記述できる構文です. while文への書き換えも可能ですが,どちらで記述した方が簡潔かは場合によりけりです.適切な使い分けをしましょう. 書式 for(繰り返し開始時に行う式(初期化式); 条件式; 1周するごとに実行する式(更新式)) { 繰り返したい処理 ・ ・ ・ } 1から10000まで出力するプログラムを書いてみます. #include stdio.h int main(void) { int i; for(i = 0; i 10000; i++) { printf("%d\n\r", i+1); } return 0; } 最初for文に入ったとき,for文の最初の文が実行され,iに0が代入されます. 次に真ん中の継続条件判定が行われ,これが真であるとき{}の中が実行され続けます. 最初iは0であり,0 10000は真なので実行されます. そして{}内に入りi+1,即ち1を出力します. }に当たったらfor文の最後i++が実行され,iが1増えて1になります. その次にfor文の継続条件判定を行います.1 10000は真なので実行されます. 2,3,4,...9999回目も同様です. 10000回出力後, i++の結果iが10000になると継続条件判定10000 10000が偽になるのでfor文から抜けます. その下のreturn 0でプログラムが終了します. 簡潔にまとめるとこんな感じです. int i; (繰り返しカウント用変数.) for(i = 0; i (繰り返したい回数); i++) { 繰り返したい処理 ・ ・ ・ } このようにして全く等価なfor文とwhile文を書き換えられます. for文で記述 for(初期化式; 条件式; 更新式) { 繰り返したい処理 ・ ・ ・ } while文で記述 (初期化式) while(条件式) { 繰り返したい処理 ・ ・ ・ 更新式 } 例題1 1つの正数nを入力し, 1+2+3+…nを計算し出力する(for文で) #include stdio.h int main(void) { int i, n, answer = 0; printf("正整数を入力してください "); scanf("%d", n); for(i = 0; i n; i++) { answer += i+1; } printf("1から%dまでの総和は%dです\n\r", n, answer); return 0; } 例題2 例題1をwhile文で #include stdio.h int main(void) { int i = 0, n, answer = 0; printf("正整数を入力してください "); scanf("%d", n); while(i n) { answer += i+1; i++; } printf("1から%dまでの総和は%dです\n\r", n, answer); return 0; } 演習1 九九の表を出力する. 演習2 1つの正数nを入力し,素数かどうか判定する.
https://w.atwiki.jp/matchmove/pages/58.html
Constraining Camera Position and Motion Sometimes you may already know some or all of the path of the camera, for example, · it may be available from a motion controlled camera, · the camera motion may be mechanically constrained by a camera dolly, · you may have measured some on-set camera data to determine overall scene sizing, or · you may have already solved the camera path, then hand-edited it for cleanup. SynthEyes lets you take advantage of this information to improve a solution or help set up the coordinate system, using the trajectory lock controls at the bottom of theSolver Control Panel, theHard and Soft Lock Controldialog, and the camera s seed path information. Warning using camera position, orientation, and field of view locks is avery advanced topic. You need to thoroughly understand SynthEyes and the coordinate system setup process, and have excellent mental visualization skills, before you are ready to consider camera locks. Under no circumstances should they be considered a way to compensate for inadequate basic tracking skills. Concept and Terminology SynthEyes allows you to create locks on path (X, Y, and/or Z translation), rotation (pan, tilt, and roll), and field of view. You can lock one or more channels, and locks are animated, so they might apply to an entire shot, a range of frames, or one frame. Each lock forces the camera to, or towards, the camera s seed path. The seed path is what you see before solving, or after clearing the solution. You can see the seed path at any time using theView/Show seed pathmenu control, or the button on the Hard and Soft Lock Control dialog. Locks may be hard or soft. Hard locks force the camera to the specified values exactly (except if Constrain is off), similar to pegged trackers. Soft locks force the camera towards the specified value, but with a strength determined by a weight value. Locks are affected by theConstraincheckbox on the solver panel, similar to what happens with trackers. With Constrain off, locks are appliedaftersolving, anddo notwarp the solution. All soft locks are treated as hard locks. With Constrain on, locks are applied before and during solving, soft locks are treated as such, and locksdowarp the solution. Field of view locks are not affected by Constrain, and are always applied. Camera position locks are more useful than orientation locks; we’ll consider position locks separately to start with. You can also constrain objects, but this is even more complex. Basic Operation Set up generally proceeds as follows 1. If you have not already attempted to solve the scene, go to step 5. 2. Go to the Solver Control Panel. Click themorebutton to bring up theHard and Soft Lock Controlpanel. 3. Position and animate the camera as desired, creating a key on each frame where you want the position to be constrained. The Get buttons can help with this. 4. Turn on the L/R, F/B, and/or U/D buttons as appropriate depending on the axes to be constrained — these stand for left/right, front/back, and up/down respectively. 5. Adjust the Constrain checkbox as needed. The camera position constraints behave similarly to constraints on the trackers if the Constrain checkbox on, they are enforced exactly during the solve, but if the Constrain checkbox is off, they are enforced only loosely after the completion of the solve. Loosely means that they are satisfied as best as can be, without modifying the trajectory or overall RMS error of the solution. The result of this process is to make the camera match the X, Y, and/or Z coordinates of the seed path at each key. This basic setup can be used to accomplish a variety of effects, as described above and covered in more detail below. At the end of the section, we’ll show some even more exotic possibilities. Using a Camera Height Measurement Suppose the camera is sitting on a moving dolly in a studio, and you measured the camera (lens s) height above the floor, and you have some trackers that are (exactly) on that floor. You can use the height measurement to set up the scene size as follows 1. Show the seed path View/Show Seed Path menu item 2. At frame 0, position the camera at the desired height above the ground plane 2 meters, 48 inches, whatever. 3. Turn on the U/D button on frame 0,turn it back off at frame 1. 4. Set up a main coordinate system using 3 or more trackers on the floor. Make sure tonotcreate a size constraint in the process if using the *3 button on the Coordinate system panel or the Coord button on the Summary panel, select the 2nd(on-axis) tracker, and in the Coordinate panel, change it from Lock Point (at 20,0,0) to On X Axis or On Y Axis. 5. Solve with Go! on the Solver panel Note that you can use whatever more complex setup you like in step 4, as long as it completely constrains both the translation and rotation, but not the size. WARNING You might be tempted to think “Hmmm, the camera is on a dolly, so the entire path must be exactly 43 inches off the floor, let me set that up!” (by not turning U/D back off). But this is almost alwaysa bad idea! The obvious problem is that the dolly track is never really completely flat and free of bumps. If the vertical field of view is 2 meters, and you are shooting 1080i/p HDTV, then roughly your track must beperfectly flat to 1 millimeteror so to have a sub-pixel impact. If your track is that flat, congratulations. The conceptually more subtle, but bigger impact problem is this a normal tripod head puts the camera lens very far from the center of rotation of the head—roughly 1 foot or 0.25 meter. As you tilt the head, the position of the camera increases and decreases up to that much in height! Unless your camera does not tilt during the shot, or you have an extra-special nodal-pan head, the camera height will change dramatically during the shot. A Straight Dolly Track Setup If your camera rides a straight dolly track, you can use the length of that track to set the scale, and almost the entire coordinates system if desired. While the camera height measurement setup discussed above is simpler, it is appropriate mainly for a studio environment with a flat floor. The dolly track setup here is useful when a dolly track is set up outdoors in an environment with no clearly-defined ground plane—in front of a hillside, say. For this setup, you should measure the distance traveled by the camera head down the track, by a consistent point on the camera or tripod. For example, if you have a 20’ track, the camera might travel only 16’ or so because there will be a 2’ dead zone at each end due to the width of the tripod and dolly. Measure the starting/ending position of the right front wheel, say. Next, clear any solved path (or click View/Show seed path), and animate the camera motion, for example moving from 0,0,0 at the beginning of the shot to 16,0,0 at the end (or wherever it reaches the maximum, if it comes back). You now have two main options A) mostly tracker-based coordinate setup, or B) mostly dolly-based coordinate setup, for side-of-hillside shots. For setup A, turn on only the L/R camera axis constraint checkbox on the first and last frames (only). The X values you have set up for the camera have set up an X positioning for the scene, so when you set up constraints on the trackers, they should constrain rotation fully, plus the front/back and up/down directions—but not the L/R direction since that would duplicate and conflict with the camera constraint (unless you are careful and lucky). For setup B, turn on L/R, F/B, and U/D on the first and last frames (only). You should take some more care in deciding exactly what coordinate values you want to use for each axis of the animated camera path, because those will be defining the coordinate system. [By setting keys only at the beginning and end of the shot, you largely avoid problems with the camera tilting up and down—at most it tilts the overall coordinate system from end to end, without causing conflicting constraints.] If the track is not level from end to end, you can adjust the beginning or ending height coordinate of the tracker as appropriate. But usually we expect the track to have been leveled from end to end. With X, Y, and Z coordinates keyed at the beginning and end of the shot, you have already completely constrained translation and scale, and have constrained 2 of the 3 rotation axes. The only remaining unconstrained rotation axis is a rotation around the dolly. To constrain this remaining rotation requires only a single additional tracker, and only its height measurement! On the set, you should measure the relative height of a trackable feature compared to the track (usually this will be to the base of the track, so you should also measure the height of the camera versus the base). You can measure this height using a level line (a string and a clip-on bubble level) and a ruler. On theCoordinate System Control Panel, select the tracker and set it toAny XY Planeand set the Z coordinate (for Z-up mode), or selectAny XZ Planeand set the Y coordinate (for Y-up mode). Now you’re ready to go! This setup is a valuable one for outdoor shots where a true vertical reference is required, but the features being tracked are not structured (rocks, bushes, etc). Again, we recommendnot trying to constrain the camera to be exactly linear, though you can easily set this up by locking Y and Z to be fixed for the duration of the shot, with single-frame locks on X at the beginning and end of the shot. This setup forces the camera motion to be exactly straight, but moving in an unknown fashion in X. Although the motion will be constrained, the setup willnotallow you to use fewer trackers for the solve. Using a Supplied Camera Path This section addresses the case where you have been supplied with an existing camera translation path, either from a motion-controlled camera rig, or as a result of hand-editing a previous camera solution, which can be useful in marginal tracks where you have a good idea what the desired camera motion is. After editing the path, you want to find the best orientation data for the given path. If you have an existing camera path in an external application (either from a rig, or after editing in maya or max, for example), typically you will import it using a standard or custom camera-path import script. Be sure that the solved camera path is cleared first, so that the seed path is loaded. If you have a solved camera path in SynthEyes, you can edit it directly. First, select the camera, and hit the Blast button on the 3-D panel. This transfers the path data from the solved path store into the seed path store. Clear the solved path and edit the seed path. Rewind and turn on all 3 camera axis locks L/R, F/B, and U/D. Next, configure the solver s seeding method. This requires some care. You can use the Path Seeding methodonly if your existing path includes correct orientation and field of view data. Otherwise, you can use the Automatic method or maybe Seed Points. The Refine mode is not an option since you have already cleared the solution to load the seed path, and don’t have orientation data anyway or you’d use Path Seeding. You can use Seed Points mode if you are editing the path in SynthEyes—but be sure to hit theSet Allbutton on the Coordinate System Setup Control panelbeforeclearing the prior solution, so that the points are set up properly as seeds. You should probablynotmake them locks, unless you are confident of the positions already. With the camera path locked to a complex path (other than a straight line), no further coordinate system setup is required, or it will be redundant. You can solve the scene first with the Constrain checkbox off, then switch to Refine mode, turn on Constrain, and solve again. This will make it apparent during the second solve whether or not you have any problems in your constraint setup, instead of having a solution fail unexpectedly due to conflicting constraints the first time. Camera-based Coordinate System Setup The camera axis constraints can be used in small doses to set up the coordinate system, as we’ve seen in the prior sections. Typically you will want to use only 1 or 2 keys on the seed path; 3 or more keys will usually heavily constrain the path and require exact knowledge of the camera move timing. Roughly, each keyed frame is equivalent in effect to a constrained tracker located at the same spot. You should keep that in mind as you plan your setup, to avoid under- or over-constraining the coordinate system. Soft Locks So far we have described hard locks, which force the camera exactly to the specified values. Soft locks pull more gently on the camera path, for example, to add stability to a section of the track with marginal tracking. In either case, for a lock to be active, the corresponding lock button (U/D, L/R, pan, etc) must be on. The weight values on the Hard and Soft Lock dialog controls whether locks are hard or soft. If the weight is zero (the default), it is a hard lock. A non-zero weight value specifies a soft lock. Weight values range from 1 to 120, with 60 a nominal neutral value. However, we recommend that when creating soft locks, you start with a weight of 10, and work upwards through 20, 30, etc until the desired effect is obtained. Weight values are in decibels, a logarithmic scale where 20 decibels is a factor of 10, and 6 decibels is a factor of two. So 40 is 10 times stronger than 20, and 26 is twice as strong as a weight of 20. (Decibels are commonly used for sound level measurements.) A lock can switch from hard to soft on a frame-by-frame basis, ie frames 0-9 can be hard, and 10-14 soft. You may need to key the weight track carefully to avoid slow transitions from 20 down to 0, for example. Soft locks are treated as such only when the Constrain check box is on it is the solver that distinguishes between hard and soft locks. If Constrain is off, the locks will be applied during the final alignment, when they do not affect the path at all, just re-orient it, so soft locks are treated the same as hard locks. Note that the soft lock weight isnota path blending control. You might naively be tempted to set up a nominal locked path, and try to animate the soft lock weights expecting a smooth blend between the solved path and your animated locked path. But that is not what will happen. The weight changes how seriously SynthEyes takes your request that the camera should be located at the specified position—but it will affect the tracker positions and everything else as well. Orientation Locks You can apply Pan, Tilt, and Roll rotation locks as well as translational locks. They can be used for path editing and, to a lesser extent, for coordinate system setup. For example, a roll-angle constraint can be used to keep the camera forced upright. That can be handy on tripod shots with large pans small amounts of lens distortion can bend the path into a banana shape; the roll constraint can flatten that back out. If the camera looks in two different directions with the roll locked, it constrainstwodegrees of freedom only a single pan angle is undetermined! For example, if looks along the X axis then along the Y axis, both with roll=0. You might want to think about that for a minute. The perspective window s local-coordinate-system and path-relative handles can help make specific adjustments to the camera path. Inherently, SynthEyes is not susceptible to “gimbal-lock” problems. However, when you have orientation locks, you are using pan, tilt, and roll axes that do define overall north and south poles, and you may encounter some problems if you are trying to lock the camera almost straight up or down. If this is the case, you may want to change your coordinate system so those views are along the +Y and –Y axes, for example. Object Tracking You can also use locks on moving objects, in addition to cameras. However, there are several restrictions on this, because moving objects are solved relative their hosting camera path, but the locks are world coordinate system values. If a moving object has path locks, then 1. the host camera must have been previously solved, pre-loaded, or pre-keyed, and the camera solving mode set to Disabled, 2. the translation axis locks must either all be on, or all off, and 3. the rotation axis locks must either all be on, or all off. Normally, when SynthEyes handles shots with a moving camera and moving object, it solves camera and object simultaneously, optimizing them both for the best overall solution. However, when object locks are present, SynthEyes must be able to access the camera solution first, in order to be able to apply the object locks. With the camera path, SynthEyes changes the translation and rotation axis lock values into a form usable for the object, but the individual axes are no longer available, and either all must be constrained, or none. SynthEyes will automatically turn all the enables on or off together if a moving object is active. Object locks have very hard-to-think-about impacts on the local coordinate system of the trackers within the object. Most object locks will wind up over-constraining the object coordinate system. We recommend that object locking be used only to work on the object path, not to try to set up the object coordinate system.
https://w.atwiki.jp/matchmove/pages/78.html
Stabilization In this section, we’ll go into SynthEyes’ stabilization system in depth, and describe some of the nifty things that can be done with it. If we wanted, we could have a single button “Stabilize this!” that would quickly and reliably do a bad job almost all the time. If that s what you’re looking for, there are some other software packages that will be happy to oblige. In SynthEyes, we have provided a rich toolset to get outstanding results in a wide variety of situations. You might wonder why we’ve buried such a wonderful and significant capability quite so far into the manual. The answer is simple in the hopes that you’ve actually read some of the manual, because effectively using the stabilizer will require that you know a number of SynthEyes concepts, and how to use the SynthEyes tracking capabilities. If this is the first section of the manual that you’re reading, great, thanks for reading this, but you’ll probably need to check out some of the other sections too. At the least, you have to read the Stabilization quick-start. Also, be sure to check the web site for the latest tutorials on stabilization. We apologize in advance for some of the rant content of the following sections, but it s really in your best interest! Why SynthEyes Has a Stabilizer The simple and ordinary need for stabilization arises when you are presented with a shot that is bouncing all over the place, and you need to clean it up into a solid professional-looking shot. That may be all that is needed, or you might need to track it and add 3-D effects also. Moving-camera shots can be challenging to shoot, so having software stabilization can make life easier. Or, you may have some film scans which are to be converted to HD or SD TV resolution, and effects added. People of all skill levels have been using a variety of ad-hoc approaches to address these tasks, sometimes using software designed for this, and sometimes using or abusing compositing software. Sometimes, presumably, this all goes well. But many times it does not a variety of problem shots have been sent to SynthEyes tech support which are just plain bad. You can look at them and see they have been stabilized, and not in a good way. We have developed the SynthEyes stabilizer not only to stabilize shots, but to try to ensure that it is done the right way. How NOT to Stabilize Though it is relatively easy to rig up a node-based compositor to shift footage back and forth to cancel out a tracked motion, this creates a fundamental problem Most imaging software, including you, expects the optic center of an image to fall at the center of that image. Otherwise, it looks weird—the fundamental camera geometry is broken. The optic center might also be called the vanishing point, center of perspective, back focal point, center of lens distortion. For example, think of shooting some footage out of the front of your car as you drive down a highway. Now cut off the right quarter of all the images and look at the sequence. It will be 4 3 footage, but it s going to look strange—the optic center is going to be off to the side. If you combine off-center footage with additional rendered elements, they will have the optic axis at their center, and combined with the different center of the original footage, they will look even worse. So when you stabilize by translating an image in 2-D (and usually zooming a little), you’ve now got an optic center moving all over the place. Right at the point you’ve stabilized, the image looks fine, but the corners will be flying all over the place. It s a very strange effect, it looks funny, and you can’t track it right. If you don’t know what it is, you’ll look at it, and think it looks funny but not know what has hit you. Recommendation if you are going to be adding effects to a shot, you should ask to be the one to stabilize or pan/scan it also. We’ve given you the tool to do it well, and avoid mishap. That s always better than having someone else mangle it, and having to explain later why the shot has problems, or why you really need the original un-stabilized source by yesterday. In-Camera Stabilization Many cameras now feature built-in stabilization, using a variety of operating principles. These stabilizers, while fine for shooting baby s first steps, may not be fine at all for visual effects work. Electronic stabilization uses additional rows and columns of pixels, then shifts the image in 2-D, just like the simple but flawed 2-D compositing approach. These are clearly problematic. One type of optical stabilizer apparently works by putting the camera imaging CCD chip on a little platform with motors, zipping the camera chip around rapidly so it catches the right photons. As amazing as this is, it is clearly just the 2-D compositing approach. Another optical stabilizer type adds a small moving lens in the middle of the collection of simple lens comprising the overall zoom lens. Most likely, the result is equivalent to a 2-D shift in the image plane. A third type uses prismatic elements at the front of the lens. This is more likely to be equivalent to re-aiming the camera, and thus less hazardous to the image geometry. Doubtless additional types are in use and will appear, and it is difficult to know their exact properties. Some stabilizers seem to have a tendency to intermittently jump when confronted with smooth motions. One mitigating factor for in-camera stabilizers, especially electronic, is that the total amount of offset they can accommodate is small—the less they can correct, the less they can mess up. Recommendation It is probably safest to keep camera stabilization off when possible, and keep the shutter time (angle) short to avoid blur, except when the amount of light is limited. Electronic stabilizers have trouble with limited light so that type might have to be off anyway. 3-D Stabilization To stabilize correctly, you need 3-D stabilization that performs “keystone correction” (like a projector does), re-imaging the source at an angle. In effect, your source image is projected onto a screen, then re-shot by a new camera looking in a somewhat different direction with a smaller field of view. Using a new camera keeps the optic center at the center of the image. In order to do this correctly, you always have to know the field of view of the original camera. Fortunately, SynthEyes can tell us that. Stabilization Concepts Point of Interest (POI). The point of interest is the fixed point that is being stabilized. If you are pegging a shot, the point of interest is the one point on the image that never moves. POI Deltas (Adjust tab). These values allow you to intentionally move the POI around, either to help reduce the amount of zoom required, or to achieve a particular framing effect. If you create a rotation, the image rotates around the POI. Stabilization Track. This is roughly the path the POI took—it is a direction in 3-D space, described by pan/tilt/roll angles—basically where the camera (POI) was looking (except that the POI isn’t necessarily at the center of the image). Reference Track. This is the path in 3-D we want the POI to take. If the shot is pegged, then this track is just a single set of values, repeated for the duration of the shot. Separate Field of View Track. The image preparation system has its own field of view track. The image prep s FOV will be larger than main FOV, because the image prep system sees the entire input image, while the main tracking and solving works only on the smaller stabilized sub-window output by image prep. Note that an image prep FOV is needed only for stabilization, not for pixel-level adjustments, downsampling, etc. The Get Solver FOV button transfers the main FOV track to the stabilizer. Separate Distortion Track. Similarly there is a separate lens distortion track. The image prep s distortion can be animated, while the main distortion can not. The image prep distortion or the main distortion should always be zero, they should never both be nonzero simultaneously. The Get Solver Distort button transfers the main distortion value (from solving or the Lens-panel alignment lines) to the stabilizer, and begs you to let it clear the main distortion value afterwards. Stabilization Zoom. The output window can only be a portion of the size of the input image. The more jiggle, the smaller the output portion must be, to be sure that it does not run off the edge of the input (see the Padded mode of the image prep window to see this in action). The zoom factor reflects the ratio of the input and output sizes, and also what is happening to the size of a pixel. At a zoom ratio of 1, the input and output windows and pixels are the same size. At a zoom ratio of 2, the output is half the size of the input, and each incoming pixel has to be stretched to become two pixels in the output, which will look fairly blurry. Accordingly, you want to keep the zoom value down in the 1.1-1.3 region. After an Auto-scale, you can see the required zoom on the Adjust panel. Re-sampling. There s nothing that says we have to produce the same size image going out as coming in. The Output tab lets you create a different output format, though you will have to consider what effect it has on image quality. Re-sampling 3K down to HD sounds good; but re-sampling DV up to HD will come out blurry because the original picture detail is not there. Interpolation Filter. SynthEyes has to create new pixels “in-between” the existing ones. It can do so with different kinds of filtering to prevent aliasing, ranging from the default Bi-Linear to the most complex 3-Lanczos. The bi-linear filter is fastest but produces the softest image. The Lanczos filters take longer, but are sharper—although this can be drawback if the image is noisy. Tracker Paths. One or more trackers are combined to form the stabilization track. The tracker s 2-D paths follow the original footage. After stabilization, they will not match the new stabilized footage. There is a button, Apply to Trkers, that adjusts the tracker paths to match the new footage, but again, they then match that particular footage and they must be restored to match the original footage (with Remove f/Trkers) before making any later changes to the stabilization. If you mess up, you either have to return to an earlier saved file, or re-track. Overall Process We’re ready to walk through the stabilization process. You may want to refer to the Image Preprocessor Reference. · Track the features required for stabilization either a full auto-track, supervised tracking of particular features to be stabilized, or a combination. · If possible, solve the shot either for full 3-D or as a tripod shot, even if it is not truly nodal. The resulting 3-D point locations will make the stabilization more accurate, and it is the best way to get an accurate field of view. · If you have not solved the shot, manually set the Lens FOV on the Image Preprocessor s Lens tab (not the main Lens panel) to the best available value. If you do set up the main lens FOV, you can import it to the Lens tab. · On the Stabilization tab, select a stabilization mode for translation and/or rotation. This will build the stabilization track automatically if there isn’t one already (as if the Get Tracks button was hit), and import the lens FOV if the shot is solved. · Adjust the frequency spinner as desired. · Hit the Auto-Scale button to find the required stabilization zoom · Check the zoom on the Adjust tab; using the Padded view, make any additional adjustment to the stabilization activity to minimize the required zoom, or achieve desired shot framing. · Output the shot. If only stabilized footage is required, you are done. · Update the scene to use the new imagery, and either re-track or update the trackers to account for the stabilization · Get a final 3-D or tripod solve and export to your animation or compositing package for further effects work. There are two main kinds of shots and stabilization for them shots focusing on a subject, which is to remain in the frame, and traveling shots, where the content of the image changes as new features are revealed. Stabilizing on a Subject Often a shot focuses on a single subject, which we want to stabilize in the frame, despite the shaky motion of the camera. Example shots of this type include · The camera person walking towards a mark on the ground, to be turned into a cliff edge for a reveal. · A job site to receive a new building, shot from a helicopter orbiting overhead · A camera car driving by a house, focusing on the house. To stabilize these shots, you will identify or create several trackers in the vicinity of the subject, and with them selected, select the Peg mode on the Translation list on the Stabilize tab. This will cause the point of interest to remain stationary in the image for the duration of the shot. You may also stabilize and peg the image rotation. Almost always, you will want to stabilize rotation. It may or may not be pegged. You may find it helpful to animate the stabilized position of the point of interest, in order to minimize the zoom required, see below, and also to enliven a shot somewhat. Some car commercials are shot from a rig that shows both the car and the surrounding countryside as the car drives they look a bit surreal because the car is completely stationary—having been pegged exactly in place. No real camera rig is that perfect! Stabilizing a Traveling Shot Other shots do not have a single subject, but continue to show new imagery. For example, · A camera car, with the camera facing straight ahead · A forward-facing camera in a helicopter flying over terrain · A camera moving around the corner of a house to reveal the backyard behind it In such shots, there is no single feature to stabilize. Select the Filter mode for the stabilization of translation and maybe rotation. The result is similar to the stabilization done in-camera, though in SynthEyes you can control it and have keystone correction. When the stabilizer is filtering, the Cut Frequency spinner is active. Any vibratory motion below that frequency (in cycles per second) is preserved, and vibratory motion above that frequency is greatly reduced or eliminated. You should adjust the spinner based on the type of motion present, and the degree of stabilization required. A camera mounted on a car with a rigid mount, such as a StickyPod, will have only higher-frequency residual vibration, and a larger value can be used. A hand-held shot will often need a frequency around 0.5 Hz to be smooth. Note When using filter-mode stabilization, the length of the shot matters. If the shot is too short, it is not possible to accurately control the frequency and distinguish between vibration and the desired motion, especially at the beginning and end of the shot. Using a longer version of the take will allow more control, even if much of the stabilized shot is cut after stabilization. Minimizing Zoom The more zoom required to stabilize a shot, the less image quality will result, which is clearly bad. Can we minimize the zoom, and maximize image quality? Of course, and SynthEyes provides the controllability to do so. Stabilizing a shot has considerable flexibility the shot can be stable in lots of different ways, with different amounts of zoom required. We want a shot that everyone agrees is stable, but minimizes the effect on quality. Fortunately, we have the benefit of foresight, so we can correct a problem in the middle of a shot, anticipating it long before it occurs, and provide an apparently stable result. Animating POI The basic technique is to animate the position of the point-of-interest within the frame. If the shot bumps left suddenly, there are fewer pixels available on the left side of the point of interest to be able to maintain its relative position in the output image, and a higher zoom will be required. If we have already moved the point of interest to the left, fewer pixels are required, and less zoom is required. Earlier, in the Stabilization Quick Start, we remarked that the 28% zoom factor obtained by animating the rotation could be reduced further. We’ll continue that example here to show how. Re-do the quick start to completion, go to frame 178, with the Adjust tab open, in Padded display mode, with the make key button turned on. From the display, you can see that the red output-area rectangle is almost near the edge of the image. Grab the purple point-of-interest crosshair, and drag the red rectangle up into the middle of the image. Now everything is a lot safer. If you switch to the stabilize tab and hit Autoscale, the red rectangle enlarges—there is less zoom, as the Adjust tab shows. Only 15% zoom is now required. By dragging the POI/red rectangle, we reduced zoom. You can see that what we did amounted to moving the POI. Hit Undo twice, and switch to the Final view. Drag the POI down to the left, until the Delta U/V values are approximately 0.045 and -0.035. Switch back to the Padded view, and you’ll see you’ve done the same thing as before. The advantage of the padded view is that you can more easily see what you are doing, though you can get a similar effect in the Final view by increasing the margin to about 0.25, where you can see the dashed outline of the source image. If you close the Image Prep dialog and play the shot, you will see the effect of moving the POI a very stable shot, though the apparent subject changes over time. It can make for a more interesting shot and more creative decisions. Too Much of a Good Thing? To be most useful, you can scrub through your shot and look for the worst frame, where the output rectangle has the most missing, and adjust the POI position on that frame. After you do that, there will be some other frame which is now the worst frame. You can go and adjust that too, if you want. As you do this, the zoom required will get less and less. There is a downside as you do this, you are creating more of the shakiness you are trying to get rid of. If you keep going, you could get back to no zoom required, but all the original shakiness, which is of course senseless. Usually, you will only want to create two or three keys at most, unless the shot is very long. But exactly where you stop is a creative decision based on the allowable shakiness and quality impact. Auto-Scale Capabilities The auto-scale button can automate the adjustment process for you, as controlled by the Animate listbox and Maximum auto-zoom settings. With Animate set to Neither, Auto-scale will pick the smallest zoom required to avoid missing pieces on the output image sequence, up to the specified maximum value. If that maximum is reached, there will be missing sections. If you change the Animate setting to Translate, though, Auto-scale will automatically add delta U/V keys, animating the POI position, any time the zoom would have to exceed the maximum. Rewind to the beginning of the shot, and control-right-click the Delta-U spinner, clearing all the position keys. Change the Animate setting to Translate, reduce the Maximum auto-zoom to 1.1, then click Auto-Scale. SynthEyes adds several keys to achieve the maximum 10% zoom. If you play back the sequence, you will see the shot shifting around a bit—10% is probably too low given the amount of jitter in the shot to begin with. The auto-scale button can also animate the zoom track, if enabled with the Animate setting. The result is equivalent to a zooming camera lens, and you must be sure to note that in the main lens panel setting if you will 3-D solve the shot later. This is probably only useful when there is a lot of resolution available to begin with, and the point of interest approaches the boundary of the image at the end of the shot. Keep in mind that the Auto-scale functionality is relatively simple. By considering the purpose of the shot as well as the nature of any problems in it, you should often be able to do better. Tweaking the Point of Interest This is different than moving it! When the selected trackers are combined to form the single overall stabilization track, SynthEyes examines the weight of each tracker, as controlled from the main Tracker panel. This allows you to shift the position of the point-of-interest (POI) within a group of trackers, which can be handy. Suppose you want to stabilize at the location of a single tracker, but you want to stabilize the rotation as well. With a single tracker, rotation can not be stabilized. If you select two trackers, you can stabilize the rotation, but without further action, the point of interest will be sitting between the two trackers, not at the location of the one you care about. To fix this, select the desired POI tracker in the main viewport, and increase its weight value to the maximum (currently 10). Then, select the other tracker(s), and reduce the weight to the minimum (0.050). This will put the POI very close to your main tracker. If you play with the weights a bit, you can make the POI go anywhere within a polygon formed by the trackers. But do not be surprised if the resulting POI seems to be sliding on the image the POI is really a 3-D location, and usually the combination of the trackers will not be on the surface (unless they are all in the same plane). If this is a problem for what you want to do, you should create a supervised tracker at the desired POI location and use that instead. If you have adjusted the weights, and later want to re-solve the scene, you should set the weights back to 1.0 before solving. (Select them all then set the weight to 1). Resampling and Film to HDTV Pan/Scan Workflow If you are working with filmed footage, often you will need to pull the actual usable area from the footage the scan is probably roughly 4 3, but the desired final output is 16 9 or 1.85 or even 2.35, so only part of the filmed image will be used. A director may select the desired portion to achieve a desired framing for the shot. Part of the image may be vignetted and unusable. The image must be cropped to pull out the usable portion of the image with the correct aspect ratio. This cropping operation can be performed as the film is scanned, so that only the desired framing is scanned; clearly this minimizes the scan time and disk storage. But, there is an important reason to scan the entire frame instead. The optic center must remain at the center of the image. If the scanning is done without paying attention, it may be off center, and almost certainly will be if the framing is driven by directorial considerations. If the entire frame is scanned, or at least most of it, then you can use SynthEyes s stabilization software to perform keystone correction, and produce properly centered footage. As a secondary benefit, you can do pan and scan operations to stabilize the shots, or achieve moving framing that would be difficult to do during scanning. With the more complete scan, the final decision can be deferred or changed later in production. The Output tab on the Image Preparation controls resampling, allowing you to output a different image format then that coming in. The incoming resolution should be at least as large as the output resolution, for example, a 3K 4 3 film scan for a 16 9 HDTV image at 1920x1080p. This will allow enough latitude to pull out smaller subimages. If you are resampling from a larger resolution to a smaller one, you should use the Blur setting to minimize aliasing effects (Moire bands). You should consider the effect of how much of the source image you are using before blurring. If you have a zoom factor of 2 into a 3K shot, the effective pixel count being used is only 1.5K, so you probably would not blur if you are producing 1920x1080p HD. Due to the nature of SynthEyes’ integrated image preparation system, the re-sampling, keystone correction, and lens un-distortion all occur simultaneously in the same pass. This presents a vastly improved situation compared to a typical node-based compositor, where the image will be resampled and degraded at each stage. Changing Shots, and Creating Motion in Stills You can use the stabilization system to adjust framing of shots in post-production, or to create motion from still images (the Ken Burns effect). To use the stabilizing engine you have to be stabilizing, so simply animating the Delta controls will not let you pan and scan without the following trick. Delete any the trackers, click the Get Tracks button, and then turn on the Translation channel of the stabilizer. This turns on the stabilizer, making the Delta channels work, without doing any actual stabilization. You must enter a reasonable estimate of the lens field of view. If it is a moving-camera or tripod-mode shot, you can track it first to determine the field of view. Remember to delete the trackers before beginning the mock stabilization. If you are working from a still, you can use the single-frame alignment tool to determine the field of view. You will need to use a text editor to create an IFL file that contains the desired number of copies of your original file name. Stabilization and Interlacing Interlaced footage presents special problems for stabilization, because jitter in the positioning between the two fields is equivalent to jitter in camera position, which we’re trying to remove. Because the two different fields are taken at different points in time (1/30th or 1/25th of a second apart, regardless of shutter time), it is impossible for man or machine to determine what exactly happened, in general. Stabilizing interlaced footage will sacrifice a factor of two in vertical resolution. Best Approach if at all possible, shoot progressive instead of interlace footage. This is a good rule whenever you expect to add effects to a shot. Fallback Approach stabilize slow-moving interlaced shots as if they were progressive. Stabilize rapidly-moving interlaced shots as interlaced. To stabilize interlaced shots, SynthEyes stabilizes each sequence of fields independently. Note that within the image preparation subsystem, some animated tracks are animated by the field, and some are animated by the frame. Frame levels, color/hue, distortion/scale, ROI Field FOV, cut frequency, Delta U/V, Delta Rot, Delta Zoom When you are animating a frame-animated item on an interlaced shot, if you set a key on one field (say 10), you will see the same key on the other field (say 11). This simplifies the situation, at least on these items, if you change a shot from interlaced to progressive or “yes” mode or back. Avoid Slowdowns Due to Missing Keyframes While you are working on stabilizing a shot, you will be re-fetching frames from the source imagery fairly often, especially when you scrub through a shot to check the stabilization. If the source imagery is a QuickTime or AVI that does not have many (or any!) keyframes, random access into the shot will be slow, since the codec will have to decompress all the frames from the last keyframe to get to the one that is needed. This can require repeatedly decompressing the entire shot. It is not a SynthEyes problem, or even specific to stabilizing, but is a problem with the choice of codec settings. If this happens (and it is not uncommon), you should save the movie as an image sequence (with no stabilization), and Shot/Change Shot Images to that version instead. Alternatively, you may be able to assess the situation using the Padded display, turning the update mode to Neither, then scrubbing through the shot. After Stabilizing Once you’ve finished stabilizing the shot, you should write it back out to disk using the Save Sequence button on the Output tab. It is also possible to save the sequence through the Perspective window s Preview Movie capability. Each method has its advantages, but using the Save Sequence button will be generally better for this purpose it is faster; does less to the images; allows you to write the 16 bit version; and allows you to write the alpha channel. However, it does not overlay inserted test objects like the Preview Movie does. You can use the stabilized footage you write for downstream applications such as 3dsmax and Maya. But before you export the camera path and trackers from SynthEyes, you have a little more work to do. The tracker and camera paths in SynthEyes correspond to the original footage, not the stabilized footage, and they are substantially different. Once you close the Image Preparation dialog, you’ll see that the trackers are doing one thing, and the now-stable image doing something else. You should always save the stabilizing SynthEyes scene file at this point for future use in the event of changes. You can then do a File/New, open the stabilized footage, track it, then export the 3-D scene matching the stabilized footage. But… if you have already done a full 3-D track on the original footage, you can save time. Click the Apply to Trkers button on the Output tab. This will apply the stabilization data to the existing trackers. When you close the Image Prep, the 2-D tracker locations will line up correctly, though the 3-D X s will not yet. Go to the solver panel, and re-solve the shot (Go!), and the 3-D positions and camera path will line up correctly again. (If you really wanted to, you could probably use Seed Points mode to speed up this re-solve.) Important if you later decide you want to change the stabilization parameters without re-tracking, you must not have cleared the stabilizer. Hit the Remove f/Trkers button BEFORE making any changes, to get back to the original tracking data. Otherwise, if you Apply twice, or Remove after changes, you will just create a mess. Also, the Blip data is not changed by the Apply or Remove buttons, and it is not possible to Peel any blip trails, which correspond to the original image coordinates, after completing stabilization and hitting Apply. So you must either do all peeling first; remove, peel, and reapply the stabilization; or retrack later if necessary. Flexible Workflows Suppose you have written out a stabilized shot, and adjusted the tracker positions to match the new shot. You can solve the shot, export it, and play around with it in general. If you need to, you can pop the stabilization back off the trackers, adjust the stabilization, fix the trackers back up, and re-solve, all without going back to earlier scene files and thus losing later work. That s the kind of flexibility we like. There s only one slight drawback each time you save and close the file, then reopen it, you’re going to have to wait while the image prep system recomputes the stabilized image. That might be only a few seconds, or it might be quite a while for a long film shot. It s pretty stupid, when you consider that you’ve already written the complete stabilized shot to disk! Approach 1 do a Shot/Change Shot Images to the saved stabilized shot, and reset the image prep system from the Preset Manager. This will let you work quickly from the saved version, but you must be sure to save this scene file separately, in case you need to change the stabilization later for some reason. And of course, going back to that saved file would mean losing later work. Approach 2 Create an image prep preset (“stab”) for the full stabilizer settings. Create another image prep preset (“quick”), and reset it. Do the Shot/Change Shot Images. Now you’ve got it both ways fast loading, and if you need to go back and change the stabilization, switch back to the first (“stab”) preset, remove the stabilization from the trackers, change the shot imagery back to the original footage, then make your stabilization changes. You’ll then need to re-write the new stabilized footage, re-apply it to the trackers, etc. Approach 1 is clearly simpler and should suffice for most simple situations. But if you need the flexibility, Approach 2 will give it to you.
https://w.atwiki.jp/iracing_wiki/pages/28.html
Sway Bar Diameterこれは何? 効果 TIPS Sway Bar Arm Lengthこれは何? 効果 TIPS Left Bar End Offsetこれは何? 効果 TIPS Left Bar End Clearanceこれは何? 効果 TIPS Attach Left Sideこれは何? 効果 TIPS Sway Bar Diameter これは何? "トーションビーム"が何かを知っているのであれば、スウェイバーの理解は難しくありません。普通の乗用車が一体型のスウェイバーを使用しているのと違い、ストックカーのスウェイバーは3つのパーツで出来ています。1本のまっすぐなスウェイ"バー"と、2本のスウェイバー"アーム"です(スウェイバーアームについては後述します)。 "Sway Bar Diameter"の項目では、このスウェイバーの直径を変更します。 Explanation If you understand what “Torsion Beam” suspension is, you basically already understand the sway bars on NASCAR-style stock cars. While your passenger cars usually have a single-piece sway bar, the sway bars on these stock-cars are known as “three-piece” sway bars. Instead of a solid bar, the “Three-piece” bar consists of a straight bar and two “arms”, which we’ll cover later. The “sway bar diameter” adjustment changes the diameter of the “bar” component on the sway bar. 効果 スウェイバーのサイズを変更することにより、スウェイバーに負荷が掛かった時にサスペンションへ及ぶ負荷が変わります。 サスペンションが縮むとき、サスペンションはスウェイバーアームをを引き上げ、スウェイバーには捻る力が作用します。スウェイバーの径が大きい場合は元の形に留まろうとする力も大きいため、結果的にサスペンション側に負荷を掛けることになります。 フロントのスウェイバーを大きくすることにより車はタイトになります。この効果は主にコーナーの中間で感じられますが、入り口/出口ではそれほどでもありません。 What does it do Changing the size of the sway bar changes how much force the bar applies to the suspension under loading. When the suspension compresses, it pulls up on the sway bar arms and twists the sway bar. The larger the diameter of the sway bar, the more the sway bar will work to return to its normal state, thus, more force will be exerted on the suspension. A larger front sway bar generally tightens the car up. This will be primarily felt in the center of the corner when the car makes its rotation, and not so much on entry/exit. TIPS この項目も、一度決めたら後はあまり触らないタイプの項目です。大抵のドライバーは自分の好みのサイズが決まっていて、0.125インチ程度の幅で調整します。もちろん、もっと大きな範囲で設定するのも車をあなた好みに仕上げるためには悪くありません。 スウェイバー径の決定はスプリングとショックの設定に依存します。コイル・バインディングスタイルのセットアップをしているのなら、1.750インチ以上の大きなスウェイバーが必要になるでしょう。これによりノーズを下げた姿勢を維持し、ターン中に車体左前方のボディ下から空気が入るのを防ぐことが出来ます。一方コンベンショナルスタイルのセットアップなら、固めのスプリングに合わせて小さな径のスウェイ・バーを用いるのが通常です。 十分なテストを行えば、スウェイバーとスプリングの良い組み合わせが見つかるでしょう。 Tips This is another “set once” adjustment. Nine times out of ten, the driver will have a sway bar diameter range he or she likes. This can vary by as little as .125” (2.000”-2.125”) or can be a large gap, but it’s good to find a sway bar diameter you like and build the car around that. The sway bar diameter also depends on how the front springs/shocks are configured. If you are running a coil-binding style setup, a larger bar (1.750”+) will keep the nose level, and prevent any aero-issues with air getting under the LF corner while in a turn, while a conventional-style setup will generally use a smaller sway bar due to the high rate of the front springs. Enough testing will give you a good idea where to put the sway bar with the springs you’ve put into the car. Sway Bar Arm Length これは何? スウェイバーの両端にあり、サスペンションに固定されているのがスウェイバーアームです。 サスペンションが縮む時にスウェイバーにねじる力を伝えます。レバー型の形状をしており、違う長さのものと交換することが出来ます。シャーシにもよりますが、11インチか12インチ、もしくは14インチか16インチかを 選択することが出来ます。どちらの場合も長さについて考慮することは同じです。 Explanation On the ends of the actual sway bar itself, there are two arms that lead back to the suspension (see picture). These arms are what impart the twisting force on the sway bar when the suspension travels. Essentially a lever, these arms can be swapped out for different lengths. Depending on the chassis, you can choose from either an 11” or 12” arm, or the 14”16” arms, but regardless of the lengt idea is still the same. 効果 スウェイバーアームはサスペンションとスウェイバーの間に介在するシンプルな部品です。サスペンションに大きな荷重が掛かれば、スウェイバーアームにも大きな力が加わります。スウェイバーアームを11インチから12インチに交換すれば、アームの動作角度をおよそ10度ほど(この数値は例ですが)小さくすることが出来ます。 アームを長くすればスウェイバーからサスペンションへ伝わる力が小さくなり、コーナーの入り口・出口において車体がサスペンションの影響を受けにくくなります。反対に短くすれば、入り口・出口において車はタイトになります。 What does it do The sway bar arm is a very simple component between the suspension and the sway bar. much force is applied to the sway arm when the suspension is fully compressed. By swapping out the 11” arm for a 12” arm, you will decrease that travel to, say, 10°. Lengthening the arms will cause the bar to exert less forc on the suspension and free the car up on entry and exit (when the suspension is moving), and shortening the arms will tighten up the car on entry and exit. TIPS スウェイバーアームの選択を誤り、足回りのセッティングに問題が発生した場合原因がスウェイバーアームであると特定することは大変困難です。そのため、まずスウェイバーアーム長を決めてからその他のセッティングにとりかかるのが望ましいでしょう。 Tips It’s very difficult to distinguish a problem in the shock setup from incorrect sway bar arms. Therefore, it’s better to find the sway bar arm you prefer, and then build the car around that setting. Left Bar End Offset これは何? スウェイバーアームの終端にはハイムジョイントがあり、これがスウェイバーアームとサスペンションのロウワー・コントロールアームを接続しています。 ハイムジョイントはねじ式のため長さを調整することが出来ます。この調整によりスウェイバー及びサスペンションに負荷を掛けることが出来ます。 Explanation On the ends of the sway bar arms, there is a Heim joint connecting the sway bar arm to the lower control arm on suspension. This Heim joint is threaded, allowing the length of the Heim to be adjusted. Adjusting the left end Heim joint will load the sway bar, and in turn, the suspension. 効果 ハイムジョイントの長さを変えることにより、静止状態の車のスウェイバーに負荷を掛ける(もしくはその反対)ことが出来ます。その結果、車高とクロスウェイトが変化します。 この項目の設定は"Left Bar End Clearance"(後述)の設定に影響を与えます。より詳しい情報は"Attach Left Side"の項目を参照してください。 What does it do By changing the length of the Heim joint, you will, like mentioned above, load or unload the sway bar when the car is at rest. As a result of loading sway bar, you will also see the ride heights change. This will also change the cross-weight in the car. Changing this setting will directly affect the "Left Bar End Clearance" adjustment(below). This will be looked into with greater detail in the “Attach Left Side” section. TIPS コーナー入り口でのハンドリングに問題がある場合、解決する手段としてこの項目を調整するのは良い方法です。なぜなら調整の効果が最も感じられるのはそこになるからです。 Tips This adjustment will primarily be felt upon corner entry and the initial cut into the corner, and once the springs and shocks have been set, it is a very good way to correct any handling issues on corner entry. Left Bar End Clearance これは何? 車が静止状態の時にどれだけスウェイバーに負荷が掛かっているかを測る目安、と考えるとよいでしょう。この数値は"Left Bar End Offset"の設定により変化します。左側のハイムジョイントで測ります。 Explanation The best way to think of this measurement is as an indicator of how much load is on the sway bar when the car is at rest. This setting is changed as a result of changes in the End Offset, as this is measured at the left-side Heim joint. 効果 とてもシンプルです。数値が0/16インチならスウェイバーがサスペンションへ一切の負荷を掛けていないことを表します。数値がマイナスならスウィエバーはサスペンションへ負荷を掛けています(-0/16インチの場合もごく僅かに)。プリロード(負荷を掛けている状態)を大きくすれば、コーナーの入り口で車はタイトになります。数値がプラスの場合については"Attach Left Side"のセクションで説明します。 What does it do Put simply, a setting of 0/16” means the bar is not placing any load on the suspension at rest. This does not include settings of +0/16” or -0/16” because those represent a load from the sway bar (very small values of zero). A negative value on the End Clearance represents a pre-load on the sway bar, meaning the sway bar is placing a load on the suspension. More preload on the sway bar generally causes the car to tighten up upon corner entry. A positive value will be discussed more in the "Attach Left Side" section. TIPS この項目は、スプリングの調整を十分に行いショックの調整でもカバーし切れなくなった時に、最後の微調整として有効です。 クリアランスを大きくするとコーナーの入り口でルースに、小さくするとタイトになります。 Tips This is a fine-tune adjustment for when a spring adjustment would be too much, or a shock adjustment would be too little. Increasing the End Clearance will free up the car on entry, while decreasing the End Clearance will tighten the car on entry. Attach Left Side これは何? ハイムジョイントは2種類あります。固定式で動かないタイプと、一方がスライドするタイプです。 Explanation There are two available types of Heim joints we can place on the car. There is a fixed type where there is no movement allowed and a “sliding” Heim joint in which one end of the Heim joint can move. This sliding type is known as a “detached” linkage. 効果 単純に、スウェイバーアームとの接続方法を固定式か可動式に変更します。 固定式の場合は左フロントサスペンションに掛かった負荷がそのままスウェイバーに伝わります。可動式の場合はスウェイバーに負荷が伝わる前に遊びがあります。遊びの量は、クリアランスをどれだけ持たせたかによります。例えばクリアランスが+4/16インチある場合は、サスペンションが4/16インチ以上動いてからはじめてスウェイバーへ負荷が伝わります。 Atlanta Motor Speedwayのようなバンピーなトラックを走る場合を考えます。ターン中に左フロントタイヤが段差に乗り上げた時、固定式の場合は衝撃がすぐにスウェイバーに伝わり、右フロントサスペンションは予期しない荷重が急に掛かることになります。これにより車体の右フロントが路面へ接触することもあります。可動式でかつ十分なクリアランスがあれば、段差は難なくクリアし車体は単に右へロールし、右フロントサスペンションへ急な荷重を掛けることもありません。 What does it do Detaching or attaching the sway bar merely changes the linkage on the left side of the sway bar. By having an “attached” sway bar, any force on the left front suspension will be transferred to the sway bar. By having a “detached” sway bar, you allow some play in the left front suspension before the bar is loaded. This is where your End Clearance comes into play. If you have the bar set as “detached”, then any positive End Clearance setting will mean that much play in the left front suspension. So, if you have +4/16” on your left end clearance, then the left front suspension will move 4/16” (1/4”) before it ever places a load on the sway bar. For these settings, we’ll use the same example. You are testing at a bumpy track, such as Atlanta Motor Speedway. Going through the corner, your left front suspension hits a rather large bump. If you had the sway bar set to “attached”, then the left front suspension would immediately place the load onto the sway bar and transfer it to the right front suspension. This sudden shock to the RF could cause the car to shoot up the track unexpectedly. If you had the bar set to “detached”, and assuming you had enough End Clearance, you could potentially hit the bump and the car would just roll right over it, and the RF would see no sudden load. TIPS このセッティングは一歩間違うと火傷します。固定式・可動式のどちらでセッティングするにしろ、きちんと調整されていなければ車は乗れたものではなくなります。バンピーなトラックで車体のフロントを地面によく擦ってしまうようなら、可動式にしてクリアランスを少し与えるといいでしょう。しかし可動式の場合はストレートでの挙動に慣れが必要になるかもしれません。 ちなみに、クリアランスの数値がマイナスの時に可動式にしても意味はありません。可動式でありながら既にスウェイバーに負荷を掛けた状態だからです。 Tips Playing with this adjustment is like playing with fire. You can truly ruin the car by either attaching or detaching the sway bar and not compensating for it. If you are at a bumpy track and you are constantly hitting bumps that upset the front end of the car (suddenly really tight), then you might want to go and detach the sway bar, and allow a little bit of End Clearance. However, with the left end detached, if you ever steer to the right while going in a straight line, the LF suspension will collapse, unload the RF, and you’ll spin off to the right, so it’s a feeling you have to get accustomed to. Also, if your End Clearance is a negative value, it makes no sense to have the left end detached, since it’s constantly loading the sway bar.
https://w.atwiki.jp/cmatome/pages/16.html
ニコニコ動画 http //www.nicovideo.jp/watch/sm8531180 for文 for文を使えば繰り返し処理ができる。次の配列を知るとfor文がもっと活躍できる。 ニコ動のプログラム using System; class Test6{ public static void Main(){ for(int i=0; i 10; i++){ //10回ループ Console.WriteLine("かっぱっぱ~"); } } } ちなみに、10回繰り返すだけなら for(int i=1; i =10; i++) とか for(int i=0; i =9; i++) でもできますが、前者のほうはiが1から始まるというのは次にやる配列との兼ね合いで推奨しません。 後者のi =9というのは(ここでは10回繰り返すのが)9回しか繰り返さないように見えてしまう可能性があり推奨しません。 forとifの組み合わせ) 動画のプログラム(少し改変しました。) using System; class Test6{ public static void Main(){ for(int i=0; i 10; i++){ //10回ループ if((i%2)==1){ //2で割ったあまりが1なら Console.WriteLine(i.ToString()+"は奇数です"); //ToStringをつけなくてもいいが、一応文字に変換するためのToString()つけます } else{ //2で割ってあまりが1でない、つまり0なら Console.WriteLine(i.ToString()+"は偶数です"); } } } } これはまぁ問題ないでしょう。 ここから高校数学の数列の内容が入ってきます。数列知らないひとや興味ない人は読み飛ばしてください 等差数列和はn(n+1)/2とかで簡単に求められますが、この場合forを使って練習するのでそれ禁止ね。 using System; class Test6{ public static void Main(){ int sum=0; for(int i=0; i 10; i++){ //10回ループ sum=sum+i; } Console.WriteLine("sum= "+sum.ToString(); } } 1+2+3+・・・+9を求めます 1+2+:::+9は漸化式をたてると S[n]=S[n-1]+n、S[0]=0。 一般に、A[n]=A[n-1]+nみたいに左にA[n]、右にA[n-1]とnだけ置いて A[n]とA[n-1]をSum,Sumの初期値をA[0],nをiとおいてそのまま書き換えればおk。 なぜそうすれば良いのかは面倒なので省略。数学とか好きな人は考えれ。 例: S[n]=2*S[n-1]+n/2,S[0]=0でS[5]を求めよ。 まず手動で求めてみましょう。S[1]=1/2、S[2]=2、S[3]=11/2、S[4]=13、S[5]=28.5 //S[n]とS[n-1]をS、n/2をi/2と置き換え double S=0; // n/2つまり小数が出てきてるのでint型ではなくdoubleを使う、S[0]=0なので初期値0 for(double d=1.0;d =5.0;d++){ //これも↓にi/2があるのでdouble、S[5]を求めるのでd =5.0。じゃないよ S=2*S+d/2; } Console.WriteLine(S.ToString()); 28.5って出てきました 実数型と整数型とキャスト ↑で、forループに使った変数をint型ではなくdouble型を使いました。 理由を説明します。 これを実行してみてください。 int i=3;double d; d=i/2; Console.WriteLine(d.ToString()); こたえいくつになるか?i=3でi/2なのでdは1.5になるはず。。。 ところが表示されたのは1でした。 i/2は両方整数型です。 したがって、i/2はそもそも整数です。[整数同士で割り算しても整数にしかなりません]。だからd=i/2とやってもdは1が入ってしまいました。 これを防ぐには d=(double)i/2; と。(double)をつけるか、i/2.0というように小数点をつけます。(小数をつけるのは整数型/実数型になり、あまり推奨しません。。。) これでi/2やi/2.0自体がdouble型だとみなされ、3/2は1.5になります。 こんな風に、(double)とかつけるのを型キャストとかいいます。 すべての型はできるだけ統一しておかないと、小数が整数になったり小数で計算してほしいのに整数扱いされて正しい数値が得られなくなってます。 悪い例 double d=3/2;Console.WriteLine(d.ToString()); 良い例 double d=3.0/2.0;またはd=(double)3/2; 次は1~15の掛け算 1*2*3*4*・・・*15 S[n]/S[n-1]=n⇒S[n]=S[n-1]*i、S[1]=1なのでS[n]とS[n-1]を適当な文字におきかえて double A=1;//めちゃくちゃでかい数なのでintでは収まらない、double型 for(double d=1;d =15;d++){ A=A*d; //Aは実数型なので、dも実数型にしました。 } Console.WriteLine(A.ToString()); 宿題の答えw 長々説明したけどべつにsum=sum+iとかはわからなくてもいいです。ここはアルゴリズムとか学ぶ場所じゃないんで。 while文 while(条件){ } 条件がtrueのときに処理を行い、ループする。満たしてないときに飛ばす。 動画の内容はやさしいので飛ばします。 break文 whileやfor文には、break;という文を加えることによって処理を強制的に抜け出せます。 例 while(true){ //処理 break; } たとえば、数値を入力してもらうときに 0という数値が入力されたら終了するときなどに使えます。 int Nyuuryoku; //Nyuuryokuになにか数を入れてもらう処理 while(true){ if(Nyuuryoku==0){ break; } //入力の処理 } do~while文なんてのもあります。 do{ }while(条件); 文の終了合図のセミコロンがついています!忘れないで do~whileは最低でも一回なにかやってほしいときに使います。 int x=1; while(x==2){ //処理 } ↑はwhileの間の処理は一度も実行されません。 int x=1 do{ //処理 }while(x==2); この処理は一度はかならず実行されます。
https://w.atwiki.jp/ssb_sokuhou/pages/47.html
imageプラグインエラー ご指定のURLはサポートしていません。png, jpg, gif などの画像URLを指定してください。 A lot of developers will buy photo books or travel videos based on the locations they re designing a game around; Avalanche Studios collects vacation photos. Anytime someone on staff gets back from a trip to the Mediterranean they send over their photos to Avalanche s art team and writes it off as a travel expense. Avalanche has used this database of photos to create the fictional world of Medici, the setting for Just Cause 3. To get a better understanding of this new world, we spoke with art director Zach Schlappi who walked us through the game s entire ecosphere. ゲームの舞台を作る際、写真集や旅行のビデオなんかを参考にするだろう。 アヴァランチスタジオは様々なスタッフを地中海へ向かわせ、アートチームに写真を遅らせている。もちろん経費でな。 そうやって蓄積された写真データベースを元にメディチという架空の国を作り上げるのだ。 我々はこの世界をもっと知りたいので、 以前我々をゲームの世界に案内してくれたアートディレクターのザック・シュラッピー氏に話を伺った。 imageプラグインエラー ご指定のURLはサポートしていません。png, jpg, gif などの画像URLを指定してください。 "For Just Cause 3, we wanted a sort of new location, and no one has tackled the Mediterranean in the way we saw it. Of course, Assassin s Creed had Florence and Italy, but we were looking at Monaco and the central/southern Mediterranean. It s such a good area because it s a little bit of everything. Everyone s done South America. Everyone has done Eastern Russia, but we thought that the Mediterranean was an untapped resource. I looked at a span of places from Sicily to Northern Africa to Greece to Albania, which gave us a nice quilt to work with. There are some great dusty environments, and you get some of that hot hazy feeling, those beautiful emerald waters, and those great big skies. It seems like a great area to lay waste to, because it was so beautiful." 「ジャストコーズ3の為の舞台探しをしてたんだけど、誰もどういう風に地中海を舞台にすればいいのか思い浮かばなかった。 そんな中でアサシンクリードは当然のようにイタリアとフィレンツェを舞台にしたんだけど、 僕等は違った、モナコや中央/南地中海あたりにしようと思ってたんだ。こういう場所はありふれてないいい場所だし、 南米や東ロシアはやった事があっけど、地中海はまだ手を付けてなかった。 シチリアや北アフリカ、グリースやアルバニアはとてもいい素材を提供してくれたよ。僕はそれらを繋ぎ合わせた場所を作ったんだ。 どこか懐かしく、暑く霞んでいる感じ、美しいエメラルド色の海、広く青い空、暴れるのにもってこいな美しい場所だよ。」 imageプラグインエラー ご指定のURLはサポートしていません。png, jpg, gif などの画像URLを指定してください。 "A deep world has to have some culture, it has to have a lot of meaning, it can t be something that s throw-away or disposable. Medici is believable and yet very approachable. It s a place you might want to go on vacation, yet it has trouble. It has a dictatorship. After that, I wanted to ask ourselves, How do you play with that language in the environment? So, I created a system of colors grey, yellow, and red are the colors of oppression. While the pristine world is full of more natural colors. If you look at any picture of the Mediterranean you see blue skies, wheat fields, and a lot of lavender. If you look at all our concept art there is a constant color theme of golden ochre versus teal blue. It s always those two complementary colors bouncing around." 「重厚な世界観には多様な文化が必要だ、ありふれた物やどっかのパクリとかじゃいけないよね。 メディチはとても親しみやすい場所だよ。君も旅行に行きたくなる筈だ。だけど、独裁国家という裏の顔があるけどね。 だからこの環境にどういう風にその要素を混ぜるか追求したんだ。 灰色、黄色、赤なんかの抑圧的な色を自然溢れる世界に入れてみたんだ。 地中海の写真を見れば、青い空や小麦畑、無数のラベンダーが目に映るはずだ。 このコンセプトアートにも "We have five different biomes and they all have there own palette feel. Each one has an identity. There is an air of exploration and expanse as people travel the world. We have two different coasts. One that is brutal with jagged rocks and deep sea cliffs, and the other is very smooth and sandy were all the tourist go. As you wander further inland you have the pastoral areas, which are full of fields of lavender and sunflowers like in Italy or Spain. That adds a sense of the human element to the game; this is a place where people live. It also creates a contrast for the scrublands which is like the Mediterranean wild west, which is full of industry and deforestation. Beyond that you have the forest, which are full of mystery and have a smokey atmosphere. Finally, players will approach the icy mountains. So players have this full sense of progression of all representations of water, from mountain snow to watery coasts." For more details on Avalanche s upcoming open-world title be sure to check out our cover hub, which is filled with exclusive content such as hands-on impressions and a video history of the studio.